diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 9fc7fd092f..49d5201eec 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,8 +1,6 @@ -version: "3" - services: db: - image: postgres:14 + image: postgres:13 restart: unless-stopped expose: - 5432/tcp diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..3ba13e0cec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8d14eeb906..37c37b524e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -18,7 +18,7 @@ updates: directories: - /contrib/container - /docs - - /.github + - /contrib/dev_reqs - /src/backend schedule: interval: weekly diff --git a/.github/scripts/version_check.py b/.github/scripts/version_check.py index bfe171c623..2cc2cafab9 100644 --- a/.github/scripts/version_check.py +++ b/.github/scripts/version_check.py @@ -18,8 +18,11 @@ from pathlib import Path import requests +REPO = os.getenv('GITHUB_REPOSITORY', 'inventree/inventree') +GITHUB_API_URL = os.getenv('GITHUB_API_URL', 'https://api.github.com') -def get_existing_release_tags(): + +def get_existing_release_tags(include_prerelease=True): """Request information on existing releases via the GitHub API.""" # Check for github token token = os.getenv('GITHUB_TOKEN', None) @@ -28,9 +31,7 @@ def get_existing_release_tags(): if token: headers = {'Authorization': f'Bearer {token}'} - response = requests.get( - 'https://api.github.com/repos/inventree/inventree/releases', headers=headers - ) + response = requests.get(f'{GITHUB_API_URL}/repos/{REPO}/releases', headers=headers) if response.status_code != 200: raise ValueError( @@ -50,6 +51,9 @@ def get_existing_release_tags(): print(f"Version '{tag}' did not match expected pattern") continue + if not include_prerelease and release['prerelease']: + continue + tags.append([int(x) for x in match.groups()]) return tags @@ -73,7 +77,7 @@ def check_version_number(version_string, allow_duplicate=False): version_tuple = [int(x) for x in match.groups()] # Look through the existing releases - existing = get_existing_release_tags() + existing = get_existing_release_tags(include_prerelease=False) # Assume that this is the highest release, unless told otherwise highest_release = True @@ -90,6 +94,11 @@ def check_version_number(version_string, allow_duplicate=False): if __name__ == '__main__': + # Ensure that we are running in GH Actions + if os.environ.get('GITHUB_ACTIONS', '') != 'true': + print('This script is intended to be run within a GitHub Action!') + sys.exit(1) + if 'only_version' in sys.argv: here = Path(__file__).parent.absolute() version_file = here.joinpath( @@ -124,14 +133,13 @@ if __name__ == '__main__': env_file.write(f'tag={tag}\n') env_file.write(f'new_tag={new_tag}\n') exit(0) + # GITHUB_REF_TYPE may be either 'branch' or 'tag' GITHUB_REF_TYPE = os.environ['GITHUB_REF_TYPE'] # GITHUB_REF may be either 'refs/heads/' or 'refs/heads/' GITHUB_REF = os.environ['GITHUB_REF'] - GITHUB_REF_NAME = os.environ['GITHUB_REF_NAME'] - GITHUB_BASE_REF = os.environ['GITHUB_BASE_REF'] # Print out version information, makes debugging actions *much* easier! @@ -215,7 +223,7 @@ if __name__ == '__main__': # Ref: https://getridbug.com/python/how-to-set-environment-variables-in-github-actions-using-python/ with open(os.getenv('GITHUB_ENV'), 'a') as env_file: # Construct tag string - tags = ','.join([f'inventree/inventree:{tag}' for tag in docker_tags]) + tags = ','.join([f'{REPO.lower()}:{tag}' for tag in docker_tags]) env_file.write(f'docker_tags={tags}\n') diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 858c3da60d..860e494073 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -124,10 +124,10 @@ jobs: rm -rf InvenTree/_testfolder - name: Set up QEMU if: github.event_name != 'pull_request' - uses: docker/setup-qemu-action@5927c834f5b4fdf503fca6f4c7eccda82949e1ee # pin@v3.1.0 + uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # pin@v3.2.0 - name: Set up Docker Buildx if: github.event_name != 'pull_request' - uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # pin@v3.4.0 + uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 # pin@v3.5.0 - name: Set up cosign if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # pin@v3.5.0 @@ -141,14 +141,14 @@ jobs: fi - name: Login to Dockerhub if: github.event_name != 'pull_request' && steps.docker_login.outputs.skip_dockerhub_login != 'true' - uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.0 + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # pin@v3.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Log into registry ghcr.io if: github.event_name != 'pull_request' - uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # pin@v3.2.0 + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # pin@v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -166,7 +166,7 @@ jobs: - name: Push Docker Images id: push-docker if: github.event_name != 'pull_request' - uses: docker/build-push-action@a254f8ca60a858f3136a2f1f23a60969f2c402dd # pin@v6.4.0 + uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445 # pin@v6.5.0 with: context: . file: ./contrib/container/Dockerfile diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 5858ced323..a128af69c8 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -177,7 +177,7 @@ jobs: echo "Downloaded api.yaml" - name: Running OpenAPI Spec diff action id: breaking_changes - uses: oasdiff/oasdiff-action/diff@main + uses: oasdiff/oasdiff-action/diff@205ce7e2c5ae1511e720cbd307cae79fd7d4a909 # pin@main with: base: 'api.yaml' revision: 'src/backend/InvenTree/schema.yml' diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 13b9d8abc7..c091b048ba 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,13 +1,16 @@ # Runs on releases -name: Publish release notes +name: Publish release on: release: types: [published] +permissions: + contents: read jobs: stable: runs-on: ubuntu-latest + name: Write release to stable branch permissions: contents: write pull-requests: write @@ -28,11 +31,13 @@ jobs: branch: stable force: true - publish-build: + build: runs-on: ubuntu-latest + name: Build and attest frontend permissions: + id-token: write contents: write - pull-requests: write + attestations: write steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4.1.7 - name: Environment Setup @@ -43,6 +48,11 @@ jobs: run: cd src/frontend && yarn install - name: Build frontend run: cd src/frontend && npm run compile && npm run build + - name: Create SBOM for frontend + uses: anchore/sbom-action@v0 + with: + artifact-name: frontend-build.spdx + path: src/frontend - name: Write version file - SHA run: cd src/backend/InvenTree/web/static/web/.vite && echo "$GITHUB_SHA" > sha.txt - name: Write version file - TAG @@ -51,10 +61,25 @@ jobs: run: | cd src/backend/InvenTree/web/static/web zip -r ../frontend-build.zip * .vite - - uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 + - name: Attest Build Provenance + id: attest + uses: actions/attest-build-provenance@v1 + with: + subject-path: "${{ github.workspace }}/src/backend/InvenTree/web/static/frontend-build.zip" + + - name: Upload frontend + uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: src/backend/InvenTree/web/static/frontend-build.zip asset_name: frontend-build.zip tag: ${{ github.ref }} overwrite: true + - name: Upload Attestation + uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # pin@2.9.0 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + asset_name: frontend-build.intoto.jsonl + file: ${{ steps.attest.outputs.bundle-path}} + tag: ${{ github.ref }} + overwrite: true diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index d423f608c5..86d474fe44 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # v3.25.12 + uses: github/codeql-action/upload-sarif@2d790406f505036ef40ecba973cc774a50395aac # v3.25.13 with: sarif_file: results.sarif diff --git a/.pkgr.yml b/.pkgr.yml index 970723ef9d..405911adb4 100644 --- a/.pkgr.yml +++ b/.pkgr.yml @@ -35,7 +35,7 @@ dependencies: - gettext - nginx - jq - - libffi7 + - "libffi7 | libffi8" targets: ubuntu-20.04: true debian-11: true diff --git a/.vscode/launch.json b/.vscode/launch.json index effc92367a..a374de9140 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,19 +6,37 @@ "configurations": [ { "name": "InvenTree Server", - "type": "python", + "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", - "args": ["runserver"], + "args": [ + "runserver", + // "0.0.0.0:8000", // expose server in network (useful for testing with mobile app) + // "--noreload" // disable auto-reload + ], + "django": true, + "justMyCode": true + }, + { + "name": "InvenTree Server - Tests", + "type": "debugpy", + "request": "launch", + "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", + "args": [ + "test", + // "part.test_api.PartCategoryAPITest", // run only a specific test + ], "django": true, "justMyCode": true }, { "name": "InvenTree Server - 3rd party", - "type": "python", + "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/src/backend/InvenTree/manage.py", - "args": ["runserver"], + "args": [ + "runserver" + ], "django": true, "justMyCode": false }, diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile index 63e5013524..572a286f5d 100644 --- a/contrib/container/Dockerfile +++ b/contrib/container/Dockerfile @@ -9,7 +9,7 @@ # - Runs InvenTree web server under django development server # - Monitors source files for any changes, and live-reloads server -ARG base_image=python:3.11-alpine3.20 +ARG base_image=python:3.11-alpine3.18 FROM ${base_image} AS inventree_base # Build arguments for this image @@ -64,7 +64,7 @@ RUN apk add --no-cache \ # Weasyprint requirements : https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#alpine-3-12 py3-pip py3-pillow py3-cffi py3-brotli pango poppler-utils openldap \ # Postgres client - postgresql14-client \ + postgresql13-client \ # MySQL / MariaDB client mariadb-client mariadb-connector-c \ && \ diff --git a/contrib/container/dev-docker-compose.yml b/contrib/container/dev-docker-compose.yml index 0fcffdc20b..54636da3d5 100644 --- a/contrib/container/dev-docker-compose.yml +++ b/contrib/container/dev-docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - # Docker compose recipe for InvenTree development server # - Runs PostgreSQL as the database backend # - Uses built-in django webserver @@ -20,7 +18,7 @@ services: # Use PostgreSQL as the database backend # Note: This can be changed to a different backend if required inventree-dev-db: - image: postgres:14 + image: postgres:13 expose: - 5432/tcp environment: diff --git a/contrib/container/docker-compose.yml b/contrib/container/docker-compose.yml index f565138c51..6a0b001f8b 100644 --- a/contrib/container/docker-compose.yml +++ b/contrib/container/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - # Docker compose recipe for a production-ready InvenTree setup, with the following containers: # - PostgreSQL as the database backend # - gunicorn as the InvenTree web server @@ -38,7 +36,7 @@ services: # Database service # Use PostgreSQL as the database backend inventree-db: - image: postgres:14 + image: postgres:13 container_name: inventree-db expose: - ${INVENTREE_DB_PORT:-5432}/tcp diff --git a/contrib/container/install_build_packages.sh b/contrib/container/install_build_packages.sh index f549b867fd..bbeae43a54 100644 --- a/contrib/container/install_build_packages.sh +++ b/contrib/container/install_build_packages.sh @@ -1,12 +1,12 @@ #!/bin/ash # Install system packages required for building InvenTree python libraries -# Note that for postgreslql, we use the 14 version, which matches the version used in the InvenTree docker image +# Note that for postgreslql, we use the version 13, which matches the version used in the InvenTree docker image apk add gcc g++ musl-dev openssl-dev libffi-dev cargo python3-dev openldap-dev \ libstdc++ build-base linux-headers py3-grpcio \ jpeg-dev openjpeg-dev libwebp-dev zlib-dev \ sqlite sqlite-dev \ mariadb-connector-c-dev mariadb-client mariadb-dev \ - postgresql14-dev postgresql-libs \ + postgresql13-dev postgresql-libs \ $@ diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt index 5a4f95c64a..f519da636b 100644 --- a/contrib/container/requirements.txt +++ b/contrib/container/requirements.txt @@ -4,9 +4,9 @@ asgiref==3.8.1 \ --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 # via django -django==4.2.14 \ - --hash=sha256:3ec32bc2c616ab02834b9cac93143a7dc1cdcd5b822d78ac95fc20a38c534240 \ - --hash=sha256:fc6919875a6226c7ffcae1a7d51e0f2ceaf6f160393180818f6c95f51b1e7b96 +django==4.2.15 \ + --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ + --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a # via django-auth-ldap django-auth-ldap==4.8.0 \ --hash=sha256:4b4b944f3c28bce362f33fb6e8db68429ed8fd8f12f0c0c4b1a4344a7ef225ce \ diff --git a/contrib/dev_reqs/requirements.in b/contrib/dev_reqs/requirements.in index 5075751c85..33bc7a3d99 100644 --- a/contrib/dev_reqs/requirements.in +++ b/contrib/dev_reqs/requirements.in @@ -1,4 +1,4 @@ # Packages needed for CI/packages -requests==2.32.2 +requests==2.32.3 pyyaml==6.0.1 -jc==1.25.2 +jc==1.25.3 diff --git a/contrib/dev_reqs/requirements.txt b/contrib/dev_reqs/requirements.txt index 1181d2a9eb..a167cb11ab 100644 --- a/contrib/dev_reqs/requirements.txt +++ b/contrib/dev_reqs/requirements.txt @@ -100,9 +100,9 @@ idna==3.7 \ --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 # via requests -jc==1.25.2 \ - --hash=sha256:26e412a65a478f9da3097653db6277f915cfae5c0f0a3f42026b405936abd358 \ - --hash=sha256:97ada193495f79550f06fe0cbfb119ff470bcca57c1cc593a5cdb0008720e0b3 +jc==1.25.3 \ + --hash=sha256:ea17a8578497f2da92f73924d9d403f4563ba59422fbceff7bb4a16cdf84a54f \ + --hash=sha256:fa3140ceda6cba1210d1362f363cd79a0514741e8a1dd6167db2b2e2d5f24f7b # via -r contrib/dev_reqs/requirements.in pygments==2.17.2 \ --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ @@ -161,9 +161,9 @@ pyyaml==6.0.1 \ --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f # via -r contrib/dev_reqs/requirements.in -requests==2.32.2 \ - --hash=sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289 \ - --hash=sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c +requests==2.32.3 \ + --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ + --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 # via -r contrib/dev_reqs/requirements.in ruamel-yaml==0.18.6 \ --hash=sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636 \ diff --git a/contrib/install.sh b/contrib/install.sh index 3b432ae366..fc6b005960 100755 --- a/contrib/install.sh +++ b/contrib/install.sh @@ -75,6 +75,7 @@ root_command() { ;; "Debian GNU/Linux" | "debian gnu/linux" | Raspbian) if [[ $VER == "12" ]]; then + DIST_VER="11" SUPPORTED=true elif [[ $VER == "11" ]]; then SUPPORTED=true diff --git a/docs/docs/assets/images/build/build_panel_allocated_stock.png b/docs/docs/assets/images/build/build_panel_allocated_stock.png new file mode 100644 index 0000000000..33ab5bba0b Binary files /dev/null and b/docs/docs/assets/images/build/build_panel_allocated_stock.png differ diff --git a/docs/docs/assets/images/build/build_panel_details.png b/docs/docs/assets/images/build/build_panel_details.png new file mode 100644 index 0000000000..aa37b138d5 Binary files /dev/null and b/docs/docs/assets/images/build/build_panel_details.png differ diff --git a/docs/docs/assets/images/build/build_panel_line_items.png b/docs/docs/assets/images/build/build_panel_line_items.png new file mode 100644 index 0000000000..859e0f34b8 Binary files /dev/null and b/docs/docs/assets/images/build/build_panel_line_items.png differ diff --git a/docs/docs/assets/images/build/build_panel_test_results.png b/docs/docs/assets/images/build/build_panel_test_results.png new file mode 100644 index 0000000000..c6cee64531 Binary files /dev/null and b/docs/docs/assets/images/build/build_panel_test_results.png differ diff --git a/docs/docs/assets/images/build/build_panel_test_statistics.png b/docs/docs/assets/images/build/build_panel_test_statistics.png new file mode 100644 index 0000000000..a71edb7ab5 Binary files /dev/null and b/docs/docs/assets/images/build/build_panel_test_statistics.png differ diff --git a/docs/docs/build/build.md b/docs/docs/build/build.md index 594b98846a..6c2f4c31df 100644 --- a/docs/docs/build/build.md +++ b/docs/docs/build/build.md @@ -66,10 +66,11 @@ Each *Build Order* has an associated *Status* flag, which indicates the state of | Status | Description | | ----------- | ----------- | -| `Pending` | Build has been created and build is ready for subpart allocation | -| `Production` | One or more build outputs have been created for this build | -| `Cancelled` | Build has been cancelled | -| `Completed` | Build has been completed | +| `Pending` | Build order has been created, but is not yet in production | +| `Production` | Build order is currently in production | +| `On Hold` | Build order has been placed on hold, but is still active | +| `Cancelled` | Build order has been cancelled | +| `Completed` | Build order has been completed | **Source Code** @@ -103,25 +104,44 @@ For further information, refer to the [stock allocation documentation](./allocat ## Build Order Display -The detail view for a single build order provides multiple display tabs, as follows: +The detail view for a single build order provides multiple display panels, as follows: ### Build Details -The *Build Details* tab provides an overview of the Build Order: +The *Build Details* panel provides an overview of the Build Order: -{% with id="build_details", url="build/build_details.png", description="Details tab" %} +{% with id="build_details", url="build/build_panel_details.png", description="Build details panel" %} {% include "img.html" %} {% endwith %} ### Line Items -The *Line Items* tab provides an interface to allocate required stock (as specified by the BOM) to the build: +The *Line Items* panel displays all the line items (as defined by the [bill of materials](./bom.md)) required to complete the build order. -{% with id="build_allocate", url="build/build_allocate.png", description="Allocation tab" %} +{% with id="build_allocate", url="build/build_panel_line_items.png", description="Build line items panel" %} {% include "img.html" %} {% endwith %} -The allocation table (as shown above) shows the stock allocation progress for this build. In the example above, there are two BOM lines, which have been partially allocated. +The allocation table (as shown above) provides an interface to allocate required stock, and also shows the stock allocation progress for each line item in the build. + +### Incomplete Outputs + +The *Incomplete Outputs* panel shows the list of in-progress [build outputs](./output.md) (created stock items) associated with this build. + +{% with id="build_outputs", url="build/build_outputs.png", description="Outputs tab" %} +{% include "img.html" %} +{% endwith %} + +!!! info "Example: Build Outputs" + In the example image above, a single output (serial number 2) has been completed, while serial numbers 1 and 4 are still in progress. + +- Build outputs can be created from this screen, by selecting the *Create New Output* button +- Outputs which are "in progress" can be completed or cancelled +- Completed outputs (which are simply *stock items*) can be viewed in the stock table at the bottom of the screen + +### Completed Outputs + +This panel displays all the completed build outputs (stock items) which have been created by this build order: ### Allocated Stock @@ -138,28 +158,29 @@ The *Consumed Stock* tab displays all stock items which have been *consumed* by - [Tracked stock items](./allocate.md#tracked-stock) are consumed by specific build outputs - [Untracked stock items](./allocate.md#untracked-stock) are consumed by the build order -### Build Outputs - -The *Build Outputs* tab shows the [build outputs](./output.md) (created stock items) associated with this build. - -As shown below, there are separate panels for *incomplete* and *completed* build outputs. - -{% with id="build_outputs", url="build/build_outputs.png", description="Outputs tab" %} -{% include "img.html" %} -{% endwith %} - -!!! info "Example: Build Outputs" - In the example image above, a single output (serial number 2) has been completed, while serial numbers 1 and 4 are still in progress. - -- Build outputs can be created from this screen, by selecting the *Create New Output* button -- Outputs which are "in progress" can be completed or cancelled -- Completed outputs (which are simply *stock items*) can be viewed in the stock table at the bottom of the screen - ### Child Builds If there exist any build orders which are *children* of the selected build order, they are displayed in the *Child Builds* tab: -{% with id="build_childs", url="build/build_childs.png", description="Child builds tab" %} +{% with id="build_childs", url="build/build_childs.png", description="Child builds panel" %} +{% include "img.html" %} +{% endwith %} + +### Test Results + +For *trackable* parts, test results can be recorded against each build output. These results are displayed in the *Test Results* panel: + +{% with id="build_test_results", url="build/build_panel_test_results.png", description="Test Results panel" %} +{% include "img.html" %} +{% endwith %} + +This table provides a summary of the test results for each build output, and allows test results to be quickly added for each build output. + +### Test Statistics + +For *trackable* parts, this panel displays a summary of the test results for all build outputs: + +{% with id="build_test_stats", url="build/build_panel_test_statistics.png", description="Test Statistics panel" %} {% include "img.html" %} {% endwith %} diff --git a/docs/docs/demo.md b/docs/docs/demo.md index 574dd503aa..7d097fca25 100644 --- a/docs/docs/demo.md +++ b/docs/docs/demo.md @@ -4,4 +4,22 @@ title: InvenTree Demo ## InvenTree Demo -This page has moved to [https://inventree.org/demo.html](https://inventree.org/demo.html) +If you are interested in trying out InvenTree, you can access the InvenTree demo instance at [https://demo.inventree.org](https://demo.inventree.org). + +This page is populated with a sample dataset, which is reset every 24 hours. + +You can read more about the InvenTree demo here: [https://inventree.org/demo.html](https://inventree.org/demo.html) + +### User Accounts + +The demo instance has a number of user accounts which you can use to explore the system: + +| Username | Password | Staff Access | Enabled | Description | +| -------- | -------- | ------------ | ------- | ----------- | +| allaccess | nolimits | No | Yes | View / create / edit all pages and items | +| reader | readonly | No | Yes | Can view all pages but cannot create, edit or delete database records | +| engineer | partsonly | No | Yes | Can manage parts, view stock, but no access to purchase orders or sales orders | +| steven | wizardstaff | Yes | Yes | Staff account, can access some admin sections | +| ian | inactive | No | No | Inactive account, cannot log in | +| susan | inactive | No | No | Inactive account, cannot log in | +| admin | inventree | Yes | Yes | Superuser account, can access all parts of the system | diff --git a/docs/docs/extend/plugins/icon.md b/docs/docs/extend/plugins/icon.md new file mode 100644 index 0000000000..8913539285 --- /dev/null +++ b/docs/docs/extend/plugins/icon.md @@ -0,0 +1,19 @@ +--- +title: Icon Pack Mixin +--- + +## IconPackMixin + +The IconPackMixin class provides basic functionality for letting plugins expose custom icon packs that are available in the InvenTree UI. This is especially useful to provide a custom crafted icon pack with icons for different location types, e.g. different sizes and styles of drawers, bags, ESD bags, ... which are not available in the standard tabler icons library. + +### Sample Plugin + +The following example demonstrates how to use the `IconPackMixin` class to add a custom icon pack: + +::: plugin.samples.icons.icon_sample.SampleIconPlugin + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_source: True + members: [] diff --git a/docs/docs/order/purchase_order.md b/docs/docs/order/purchase_order.md index 066f64d058..fe39c2ab8f 100644 --- a/docs/docs/order/purchase_order.md +++ b/docs/docs/order/purchase_order.md @@ -20,6 +20,7 @@ Each Purchase Order has a specific status code which indicates the current state | --- | --- | | Pending | The purchase order has been created, but has not been submitted to the supplier | | In Progress | The purchase order has been issued to the supplier, and is in progress | +| On Hold | The purchase order has been placed on hold, but is still active | | Complete | The purchase order has been completed, and is now closed | | Cancelled | The purchase order was cancelled, and is now closed | | Lost | The purchase order was lost, and is now closed | diff --git a/docs/docs/order/return_order.md b/docs/docs/order/return_order.md index 4b134601ae..ad219c099b 100644 --- a/docs/docs/order/return_order.md +++ b/docs/docs/order/return_order.md @@ -45,6 +45,7 @@ Each Return Order has a specific status code, as follows: | --- | --- | | Pending | The return order has been created, but not sent to the customer | | In Progress | The return order has been issued to the customer | +| On Hold | The return order has been placed on hold, but is still active | | Complete | The return order was marked as complete, and is now closed | | Cancelled | The return order was cancelled, and is now closed | diff --git a/docs/docs/order/sales_order.md b/docs/docs/order/sales_order.md index 43ab9cc533..3d6f77dec0 100644 --- a/docs/docs/order/sales_order.md +++ b/docs/docs/order/sales_order.md @@ -20,6 +20,7 @@ Each Sales Order has a specific status code, which represents the state of the o | --- | --- | | Pending | The sales order has been created, but has not been finalized or submitted | | In Progress | The sales order has been issued, and is in progress | +| On Hold | The sales order has been placed on hold, but is still active | | Shipped | The sales order has been shipped, but is not yet complete | | Complete | The sales order is fully completed, and is now closed | | Cancelled | The sales order was cancelled, and is now closed | diff --git a/docs/docs/report/helpers.md b/docs/docs/report/helpers.md index ce2a1d9188..3e8f8aff6f 100644 --- a/docs/docs/report/helpers.md +++ b/docs/docs/report/helpers.md @@ -259,6 +259,31 @@ A shortcut function is provided for rendering an image associated with a Company *Preview* and *thumbnail* image variations can be rendered for the `company_image` tag, in a similar manner to [part image variations](#image-variations) +## Icons + +Some models (e.g. part categories and locations) allow to specify a custom icon. To render these icons in a report, there is a `{% raw %}{% icon location.icon %}{% endraw %}` template tag from the report template library available. + +This tag renders the required html for the icon. + +!!! info "Loading fonts" + Additionally the icon fonts need to be loaded into the template. This can be done using the `{% raw %}{% include_icon_fonts %}{% endraw %}` template tag inside of a style block + +!!! tip "Custom classes for styling the icon further" + The icon template tag accepts an optional `class` argument which can be used to apply a custom class to the rendered icon used to style the icon further e.g. positioning it, changing it's size, ... `{% raw %}{% icon location.icon class="my-class" %}{% endraw %}`. + +```html +{% raw %} +{% load report %} + +{% block style %} +{% include_icon_fonts %} +{% endblock style %} + +{% icon location.icon %} + +{% endraw %} +``` + ## InvenTree Logo A template tag is provided to load the InvenTree logo image into a report. You can render the logo using the `{% raw %}{% logo_image %}{% endraw %}` tag: diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md index 98498f25fc..5653b8a659 100644 --- a/docs/docs/start/config.md +++ b/docs/docs/start/config.md @@ -54,6 +54,8 @@ The following basic options are available: | --- | --- | --- | --- | | INVENTREE_SITE_URL | site_url | Specify a fixed site URL | *Not specified* | | INVENTREE_DEBUG | debug | Enable [debug mode](./intro.md#debug-mode) | True | +| INVENTREE_DEBUG_QUERYCOUNT | debug_querycount | Enable [query count logging](https://github.com/bradmontgomery/django-querycount) in the terminal | False | +| INVENTREE_DEBUG_SHELL | debug_shell | Enable [administrator shell](https://github.com/djk2/django-admin-shell) (only in debug mode) | False | | INVENTREE_LOG_LEVEL | log_level | Set level of logging to terminal | WARNING | | INVENTREE_DB_LOGGING | db_logging | Enable logging of database messages | False | | INVENTREE_TIMEZONE | timezone | Server timezone | UTC | @@ -297,6 +299,10 @@ Alternatively this location can be specified with the `INVENTREE_BACKUP_DIR` env InvenTree provides allowance for additional sign-in options. The following options are not enabled by default, and care must be taken by the system administrator when configuring these settings. +| Environment Variable | Configuration File | Description | Default | +| --- | --- | --- | --- | +| INVENTREE_MFA_ENABLED | mfa_enabled | Enable or disable multi-factor authentication support for the InvenTree server | True | + ### Single Sign On Single Sign On (SSO) allows users to sign in to InvenTree using a third-party authentication provider. This functionality is provided by the [django-allauth](https://docs.allauth.org/en/latest/) package. diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index b2384c4df5..e2c6d16b26 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -199,7 +199,7 @@ Any persistent files generated by the Caddy container (such as certificates, etc ### Demo Dataset -To quickly get started with a demo dataset, you can run the following command: +To quickly get started with a [demo dataset](../demo.md), you can run the following command: ``` docker compose run --rm inventree-server invoke setup-test -i @@ -212,3 +212,86 @@ To start afresh (and completely remove the existing database), run the following ``` docker compose run --rm inventree-server invoke delete-data ``` + +## Install custom packages + +To install custom packages to your docker image, a custom docker image can be built and used automatically each time when updating. The following changes need to be applied to the docker compose file: + +
docker-compose.yml changes + +```diff +diff --git a/docker-compose.yml b/docker-compose.yml +index 8adee63..dc3993c 100644 +--- a/docker-compose.yml ++++ b/docker-compose.yml +@@ -69,7 +69,14 @@ services: + # Uses gunicorn as the web server + inventree-server: + # If you wish to specify a particular InvenTree version, do so here +- image: inventree/inventree:${INVENTREE_TAG:-stable} ++ image: inventree/inventree:${INVENTREE_TAG:-stable}-custom ++ pull_policy: never ++ build: ++ context: . ++ dockerfile: Dockerfile ++ target: production ++ args: ++ INVENTREE_TAG: ${INVENTREE_TAG:-stable} + # Only change this port if you understand the stack. + # If you change this you have to change: + # - the proxy settings (on two lines) +@@ -88,7 +95,8 @@ services: + # Background worker process handles long-running or periodic tasks + inventree-worker: + # If you wish to specify a particular InvenTree version, do so here +- image: inventree/inventree:${INVENTREE_TAG:-stable} ++ image: inventree/inventree:${INVENTREE_TAG:-stable}-custom ++ pull_policy: never + command: invoke worker + depends_on: + - inventree-server +``` + +
+ +And the following `Dockerfile` needs to be created: + +
Dockerfile + +```dockerfile +ARG INVENTREE_TAG + +FROM inventree/inventree:${INVENTREE_TAG} as production + +# Install whatever dependency is needed here (e.g. git) +RUN apk add --no-cache git +``` + +
+ +And if additional, development packages are needed e.g. just for building a wheel for a pip package, a multi stage build can be used with the following `Dockerfile`: + +
Dockerfile + +```dockerfile +ARG INVENTREE_TAG + +# prebuild stage - needs a lot of build dependencies +# make sure, the alpine and python version matches the version used in the inventree base image +FROM python:3.11-alpine3.18 as prebuild + +# Install whatever development dependency is needed (e.g. cups-dev, gcc, the musl-dev build tools and the pip pycups package) +RUN apk add --no-cache cups-dev gcc musl-dev && \ + pip install --user --no-cache-dir pycups + +# production image - only install the cups shared library +FROM inventree/inventree:${INVENTREE_TAG} as production + +# Install e.g. shared library later available in the final image +RUN apk add --no-cache cups-libs + +# Copy the pip wheels from the build stage in the production stage +COPY --from=prebuild /root/.local /root/.local +``` + +
diff --git a/docs/docs/start/install.md b/docs/docs/start/install.md index 3b1bd6ed92..6591d68852 100644 --- a/docs/docs/start/install.md +++ b/docs/docs/start/install.md @@ -239,6 +239,7 @@ Run the following command to initialize the database with the required tables. cd /home/inventree/src invoke update ``` +NOTE: If you are on Debian, and get "No module named 'django', it might be that `/usr/bin/invoke` are used. Make sure that the python environment (`/home/inventree/env/bin`) is ahead in the PATH variable. ### Create Admin Account diff --git a/docs/docs/stock/stock.md b/docs/docs/stock/stock.md index 8e9690b5ec..a72841fc90 100644 --- a/docs/docs/stock/stock.md +++ b/docs/docs/stock/stock.md @@ -6,6 +6,14 @@ title: Stock A stock location represents a physical real-world location where *Stock Items* are stored. Locations are arranged in a cascading manner and each location may contain multiple sub-locations, or stock, or both. +### Icons + +Stock locations can be assigned custom icons (either directly or through [Stock Location Types](#stock-location-type)). When using PUI there is a custom icon picker component available that can help to select the right icon. However in CUI the icon needs to be entered manually. + +By default, the tabler icons package (with prefix: `ti`) is available. To manually select an item, search on the [tabler icons](https://tabler.io/icons) page for an icon and copy its name e.g. `bookmark`. Some icons have a filled and an outline version (if no variants are specified, it's an outline variant). Now these values can be put into the format: `::`. E.g. `ti:bookmark:outline` or `ti:bookmark:filled`. + +If there are some icons missing in the tabler icons package, users can even install their own custom icon packs through a plugin. See [`IconPackMixin`](../extend/plugins/icon.md). + ## Stock Location Type A stock location type represents a specific type of location (e.g. one specific size of drawer, shelf, ... or box) which can be assigned to multiple stock locations. In the first place, it is used to specify an icon and having the icon in sync for all locations that use this location type, but it also serves as a data field to quickly see what type of location this is. It is planned to add e.g. drawer dimension information to the location type to add a "find a matching, empty stock location" tool. diff --git a/docs/main.py b/docs/main.py index 78a4339315..11066c4057 100644 --- a/docs/main.py +++ b/docs/main.py @@ -54,11 +54,23 @@ def check_link(url) -> bool: return False +def get_build_enviroment() -> str: + """Returns the branch we are currently building on, based on the environment variables of the various CI platforms.""" + # Check if we are in ReadTheDocs + if os.environ.get('READTHEDOCS') == 'True': + return os.environ.get('READTHEDOCS_GIT_IDENTIFIER') + # We are in GitHub Actions + elif os.environ.get('GITHUB_ACTIONS') == 'true': + return os.environ.get('GITHUB_REF') + else: + return 'master' + + def define_env(env): """Define custom environment variables for the documentation build process.""" @env.macro - def sourcedir(dirname, branch='master'): + def sourcedir(dirname, branch=None): """Return a link to a directory within the source code repository. Arguments: @@ -70,6 +82,9 @@ def define_env(env): Raises: - FileNotFoundError: If the directory does not exist, or the generated URL is invalid """ + if branch == None: + branch = get_build_enviroment() + if dirname.startswith('/'): dirname = dirname[1:] @@ -94,7 +109,7 @@ def define_env(env): return url @env.macro - def sourcefile(filename, branch='master', raw=False): + def sourcefile(filename, branch=None, raw=False): """Return a link to a file within the source code repository. Arguments: @@ -106,6 +121,9 @@ def define_env(env): Raises: - FileNotFoundError: If the file does not exist, or the generated URL is invalid """ + if branch == None: + branch = get_build_enviroment() + if filename.startswith('/'): filename = filename[1:] diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 75974387d7..ed0e673d02 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -203,6 +203,7 @@ nav: - Barcode Mixin: extend/plugins/barcode.md - Currency Mixin: extend/plugins/currency.md - Event Mixin: extend/plugins/event.md + - Icon Pack Mixin: extend/plugins/icon.md - Label Printing Mixin: extend/plugins/label.md - Locate Mixin: extend/plugins/locate.md - Navigation Mixin: extend/plugins/navigation.md diff --git a/docs/requirements.txt b/docs/requirements.txt index 9f1d32384a..e5558c570e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -134,9 +134,9 @@ essentials-openapi==1.0.9 \ --hash=sha256:1431e98ef0a442f1919fd9833385bf44d832c355fd05919dc06d43d4da0f8ef4 \ --hash=sha256:ebc46aac41c0b917a658f77caaa0ca93a6e4a4519de8a272f82c1538ccd5619f # via neoteroi-mkdocs -exceptiongroup==1.2.1 \ - --hash=sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad \ - --hash=sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16 +exceptiongroup==1.2.2 \ + --hash=sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b \ + --hash=sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc # via anyio ghp-import==2.1.0 \ --hash=sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619 \ @@ -173,9 +173,9 @@ idna==3.7 \ # anyio # httpx # requests -importlib-metadata==8.0.0 \ - --hash=sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f \ - --hash=sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812 +importlib-metadata==8.2.0 \ + --hash=sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369 \ + --hash=sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d # via # markdown # mkdocs @@ -301,21 +301,21 @@ mkdocs-get-deps==0.2.0 \ --hash=sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c \ --hash=sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134 # via mkdocs -mkdocs-git-revision-date-localized-plugin==1.2.5 \ - --hash=sha256:0c439816d9d0dba48e027d9d074b2b9f1d7cd179f74ba46b51e4da7bb3dc4b9b \ - --hash=sha256:d796a18b07cfcdb154c133e3ec099d2bb5f38389e4fd54d3eb516a8a736815b8 +mkdocs-git-revision-date-localized-plugin==1.2.6 \ + --hash=sha256:e432942ce4ee8aa9b9f4493e993dee9d2cc08b3ea2b40a3d6b03ca0f2a4bcaa2 \ + --hash=sha256:f015cb0f3894a39b33447b18e270ae391c4e25275cac5a626e80b243784e2692 # via -r docs/requirements.in -mkdocs-include-markdown-plugin==6.0.6 \ - --hash=sha256:7c80258b2928563c75cc057a7b9a0014701c40804b1b6aa290f3b4032518b43c \ - --hash=sha256:7ccafbaa412c1e5d3510c4aff46d1fe64c7a810c01dace4c636253d1aa5bc193 +mkdocs-include-markdown-plugin==6.2.1 \ + --hash=sha256:46fc372886d48eec541d36138d1fe1db42afd08b976ef7c8d8d4ea6ee4d5d1e8 \ + --hash=sha256:8dfc3aee9435679b094cbdff023239e91d86cf357c40b0e99c28036449661830 # via -r docs/requirements.in mkdocs-macros-plugin==1.0.5 \ --hash=sha256:f60e26f711f5a830ddf1e7980865bf5c0f1180db56109803cdd280073c1a050a \ --hash=sha256:fe348d75f01c911f362b6d998c57b3d85b505876dde69db924f2c512c395c328 # via -r docs/requirements.in -mkdocs-material==9.5.24 \ - --hash=sha256:02d5aaba0ee755e707c3ef6e748f9acb7b3011187c0ea766db31af8905078a34 \ - --hash=sha256:e12cd75954c535b61e716f359cf2a5056bf4514889d17161fdebd5df4b0153c6 +mkdocs-material==9.5.31 \ + --hash=sha256:1b1f49066fdb3824c1e96d6bacd2d4375de4ac74580b47e79ff44c4d835c5fcb \ + --hash=sha256:31833ec664772669f5856f4f276bf3fdf0e642a445e64491eda459249c3a1ca8 # via -r docs/requirements.in mkdocs-material-extensions==1.3.1 \ --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ @@ -325,9 +325,9 @@ mkdocs-simple-hooks==0.1.5 \ --hash=sha256:dddbdf151a18723c9302a133e5cf79538be8eb9d274e8e07d2ac3ac34890837c \ --hash=sha256:efeabdbb98b0850a909adee285f3404535117159d5cb3a34f541d6eaa644d50a # via -r docs/requirements.in -mkdocstrings[python]==0.25.1 \ - --hash=sha256:c3a2515f31577f311a9ee58d089e4c51fc6046dbd9e9b4c3de4c3194667fe9bf \ - --hash=sha256:da01fcc2670ad61888e8fe5b60afe9fee5781017d67431996832d63e887c2e51 +mkdocstrings[python]==0.25.2 \ + --hash=sha256:5cf57ad7f61e8be3111a2458b4e49c2029c9cb35525393b179f9c916ca8042dc \ + --hash=sha256:9e2cda5e2e12db8bb98d21e3410f3f27f8faab685a24b03b06ba7daa5b92abfc # via # -r docs/requirements.in # mkdocstrings-python @@ -441,90 +441,90 @@ pyyaml-env-tag==0.1 \ --hash=sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb \ --hash=sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069 # via mkdocs -regex==2024.5.15 \ - --hash=sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649 \ - --hash=sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35 \ - --hash=sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb \ - --hash=sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68 \ - --hash=sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5 \ - --hash=sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133 \ - --hash=sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0 \ - --hash=sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d \ - --hash=sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da \ - --hash=sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f \ - --hash=sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d \ - --hash=sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53 \ - --hash=sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa \ - --hash=sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a \ - --hash=sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890 \ - --hash=sha256:2b4c884767504c0e2401babe8b5b7aea9148680d2e157fa28f01529d1f7fcf67 \ - --hash=sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c \ - --hash=sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2 \ - --hash=sha256:3ad070b823ca5890cab606c940522d05d3d22395d432f4aaaf9d5b1653e47ced \ - --hash=sha256:3cd7874d57f13bf70078f1ff02b8b0aa48d5b9ed25fc48547516c6aba36f5741 \ - --hash=sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f \ - --hash=sha256:455705d34b4154a80ead722f4f185b04c4237e8e8e33f265cd0798d0e44825fa \ - --hash=sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf \ - --hash=sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4 \ - --hash=sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5 \ - --hash=sha256:5397de3219a8b08ae9540c48f602996aa6b0b65d5a61683e233af8605c42b0f2 \ - --hash=sha256:5b5467acbfc153847d5adb21e21e29847bcb5870e65c94c9206d20eb4e99a384 \ - --hash=sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7 \ - --hash=sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014 \ - --hash=sha256:64c65783e96e563103d641760664125e91bd85d8e49566ee560ded4da0d3e704 \ - --hash=sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5 \ - --hash=sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2 \ - --hash=sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49 \ - --hash=sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1 \ - --hash=sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694 \ - --hash=sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629 \ - --hash=sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6 \ - --hash=sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435 \ - --hash=sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c \ - --hash=sha256:87e2a9c29e672fc65523fb47a90d429b70ef72b901b4e4b1bd42387caf0d6835 \ - --hash=sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e \ - --hash=sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201 \ - --hash=sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62 \ - --hash=sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5 \ - --hash=sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16 \ - --hash=sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f \ - --hash=sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1 \ - --hash=sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f \ - --hash=sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f \ - --hash=sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145 \ - --hash=sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3 \ - --hash=sha256:b2b6f1b3bb6f640c1a92be3bbfbcb18657b125b99ecf141fb3310b5282c7d4ed \ - --hash=sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143 \ - --hash=sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca \ - --hash=sha256:bfc4f82cabe54f1e7f206fd3d30fda143f84a63fe7d64a81558d6e5f2e5aaba9 \ - --hash=sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa \ - --hash=sha256:c3bea0ba8b73b71b37ac833a7f3fd53825924165da6a924aec78c13032f20850 \ - --hash=sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80 \ - --hash=sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe \ - --hash=sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656 \ - --hash=sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388 \ - --hash=sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1 \ - --hash=sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294 \ - --hash=sha256:cf2430df4148b08fb4324b848672514b1385ae3807651f3567871f130a728cc3 \ - --hash=sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d \ - --hash=sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b \ - --hash=sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40 \ - --hash=sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600 \ - --hash=sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c \ - --hash=sha256:d99ceffa25ac45d150e30bd9ed14ec6039f2aad0ffa6bb87a5936f5782fc1569 \ - --hash=sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456 \ - --hash=sha256:e4682f5ba31f475d58884045c1a97a860a007d44938c4c0895f41d64481edbc9 \ - --hash=sha256:e5bb9425fe881d578aeca0b2b4b3d314ec88738706f66f219c194d67179337cb \ - --hash=sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e \ - --hash=sha256:e6662686aeb633ad65be2a42b4cb00178b3fbf7b91878f9446075c404ada552f \ - --hash=sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d \ - --hash=sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a \ - --hash=sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a \ - --hash=sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796 +regex==2024.7.24 \ + --hash=sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c \ + --hash=sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535 \ + --hash=sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24 \ + --hash=sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce \ + --hash=sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc \ + --hash=sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5 \ + --hash=sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce \ + --hash=sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53 \ + --hash=sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d \ + --hash=sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c \ + --hash=sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908 \ + --hash=sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8 \ + --hash=sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024 \ + --hash=sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281 \ + --hash=sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a \ + --hash=sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169 \ + --hash=sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364 \ + --hash=sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa \ + --hash=sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be \ + --hash=sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53 \ + --hash=sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759 \ + --hash=sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e \ + --hash=sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b \ + --hash=sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52 \ + --hash=sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610 \ + --hash=sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05 \ + --hash=sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2 \ + --hash=sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca \ + --hash=sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0 \ + --hash=sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293 \ + --hash=sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289 \ + --hash=sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e \ + --hash=sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f \ + --hash=sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c \ + --hash=sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94 \ + --hash=sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad \ + --hash=sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46 \ + --hash=sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9 \ + --hash=sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9 \ + --hash=sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee \ + --hash=sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9 \ + --hash=sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1 \ + --hash=sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9 \ + --hash=sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799 \ + --hash=sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1 \ + --hash=sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b \ + --hash=sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf \ + --hash=sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5 \ + --hash=sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2 \ + --hash=sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e \ + --hash=sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51 \ + --hash=sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506 \ + --hash=sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73 \ + --hash=sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7 \ + --hash=sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5 \ + --hash=sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57 \ + --hash=sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4 \ + --hash=sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd \ + --hash=sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b \ + --hash=sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41 \ + --hash=sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe \ + --hash=sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59 \ + --hash=sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8 \ + --hash=sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f \ + --hash=sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e \ + --hash=sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750 \ + --hash=sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1 \ + --hash=sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96 \ + --hash=sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc \ + --hash=sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440 \ + --hash=sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe \ + --hash=sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38 \ + --hash=sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950 \ + --hash=sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2 \ + --hash=sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd \ + --hash=sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce \ + --hash=sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66 \ + --hash=sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3 \ + --hash=sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86 # via mkdocs-material -requests==2.32.2 \ - --hash=sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289 \ - --hash=sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c +requests==2.32.3 \ + --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ + --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 # via mkdocs-material rich==13.7.1 \ --hash=sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222 \ diff --git a/pyproject.toml b/pyproject.toml index 54e44d2db7..0946691589 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ exclude = [ src = ["src/backend/InvenTree"] # line-length = 120 -[tool.ruff.extend-per-file-ignores] +[tool.ruff.lint.extend-per-file-ignores] "__init__.py" = ["D104"] [tool.ruff.lint] @@ -87,4 +87,4 @@ known_django="django" sections=["FUTURE","STDLIB","DJANGO","THIRDPARTY","FIRSTPARTY","LOCALFOLDER"] [tool.codespell] -ignore-words-list = ["assertIn","SME"] +ignore-words-list = ["assertIn","SME","intoto"] diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 95b0caa66a..a0f0d02acd 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,45 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 226 +INVENTREE_API_VERSION = 235 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ + +v235 - 2024-08-08 : https://github.com/inventree/InvenTree/pull/7837 + - Adds "on_order" quantity to SalesOrderLineItem serializer + - Adds "building" quantity to SalesOrderLineItem serializer + +v234 - 2024-08-08 : https://github.com/inventree/InvenTree/pull/7829 + - Fixes bug in the plugin metadata endpoint + +v233 - 2024-08-04 : https://github.com/inventree/InvenTree/pull/7807 + - Adds new endpoints for managing state of build orders + - Adds new endpoints for managing state of purchase orders + - Adds new endpoints for managing state of sales orders + - Adds new endpoints for managing state of return orders + +v232 - 2024-08-03 : https://github.com/inventree/InvenTree/pull/7793 + - Allow ordering of SalesOrderShipment API by 'shipment_date' and 'delivery_date' + +v231 - 2024-08-03 : https://github.com/inventree/InvenTree/pull/7794 + - Optimize BuildItem and BuildLine serializers to improve API efficiency + +v230 - 2024-05-05 : https://github.com/inventree/InvenTree/pull/7164 + - Adds test statistics endpoint + +v229 - 2024-07-31 : https://github.com/inventree/InvenTree/pull/7775 + - Add extra exportable fields to the BomItem serializer + +v228 - 2024-07-18 : https://github.com/inventree/InvenTree/pull/7684 + - Adds "icon" field to the PartCategory.path and StockLocation.path API + - Adds icon packages API endpoint + +v227 - 2024-07-19 : https://github.com/inventree/InvenTree/pull/7693/ + - Adds endpoints to list and revoke the tokens issued to the current user + v226 - 2024-07-15 : https://github.com/inventree/InvenTree/pull/7648 - Adds barcode generation API endpoint diff --git a/src/backend/InvenTree/InvenTree/forms.py b/src/backend/InvenTree/InvenTree/forms.py index cffb987e1f..0997f1a38b 100644 --- a/src/backend/InvenTree/InvenTree/forms.py +++ b/src/backend/InvenTree/InvenTree/forms.py @@ -15,6 +15,7 @@ from allauth.account.forms import LoginForm, SignupForm, set_form_field_order from allauth.core.exceptions import ImmediateHttpResponse from allauth.socialaccount.adapter import DefaultSocialAccountAdapter from allauth_2fa.adapter import OTPAdapter +from allauth_2fa.forms import TOTPDeviceForm from allauth_2fa.utils import user_has_valid_totp_device from crispy_forms.bootstrap import AppendedText, PrependedAppendedText, PrependedText from crispy_forms.helper import FormHelper @@ -211,6 +212,16 @@ class CustomSignupForm(SignupForm): return cleaned_data +class CustomTOTPDeviceForm(TOTPDeviceForm): + """Ensure that db registration is enabled.""" + + def __init__(self, user, metadata=None, **kwargs): + """Override to check if registration is open.""" + if not settings.MFA_ENABLED: + raise forms.ValidationError(_('MFA Registration is disabled.')) + super().__init__(user, metadata, **kwargs) + + def registration_enabled(): """Determine whether user registration is enabled.""" if get_global_setting('LOGIN_ENABLE_REG') or InvenTree.sso.registration_enabled(): diff --git a/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py new file mode 100644 index 0000000000..c4e1305686 --- /dev/null +++ b/src/backend/InvenTree/InvenTree/management/commands/migrate_icons.py @@ -0,0 +1,192 @@ +"""Custom management command to migrate the old FontAwesome icons.""" + +import json + +from django.core.exceptions import ValidationError +from django.core.management.base import BaseCommand, CommandError +from django.db import models + +from common.icons import validate_icon +from part.models import PartCategory +from stock.models import StockLocation, StockLocationType + + +class Command(BaseCommand): + """Generate an icon map from the FontAwesome library to the new icon library.""" + + help = """Helper command to migrate the old FontAwesome icons to the new icon library.""" + + def add_arguments(self, parser): + """Add the arguments.""" + parser.add_argument( + '--output-file', + type=str, + help='Path to file to write generated icon map to', + ) + parser.add_argument( + '--input-file', type=str, help='Path to file to read icon map from' + ) + parser.add_argument( + '--include-items', + default=False, + action='store_true', + help='Include referenced inventree items in the output icon map (optional)', + ) + parser.add_argument( + '--import-now', + default=False, + action='store_true', + help='CAUTION: If this flag is set, the icon map will be imported and the database will be touched', + ) + + def handle(self, *args, **kwargs): + """Generate an icon map from the FontAwesome library to the new icon library.""" + # Check for invalid combinations of arguments + if kwargs['output_file'] and kwargs['input_file']: + raise CommandError('Cannot specify both --input-file and --output-file') + + if not kwargs['output_file'] and not kwargs['input_file']: + raise CommandError('Must specify either --input-file or --output-file') + + if kwargs['include_items'] and not kwargs['output_file']: + raise CommandError( + '--include-items can only be used with an --output-file specified' + ) + + if kwargs['output_file'] and kwargs['import_now']: + raise CommandError( + '--import-now can only be used with an --input-file specified' + ) + + ICON_MODELS = [ + (StockLocation, 'custom_icon'), + (StockLocationType, 'icon'), + (PartCategory, '_icon'), + ] + + def get_model_items_with_icons(model: models.Model, icon_field: str): + """Return a list of models with icon fields.""" + return model.objects.exclude(**{f'{icon_field}__isnull': True}).exclude(**{ + f'{icon_field}__exact': '' + }) + + # Generate output icon map file + if kwargs['output_file']: + icons = {} + + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + if icon not in icons: + icons[icon] = { + **({'items': []} if kwargs['include_items'] else {}), + 'new_icon': '', + } + + if kwargs['include_items']: + icons[icon]['items'].append({ + 'model': model.__name__.lower(), + 'id': item.id, # type: ignore + }) + + self.stdout.write(f'Writing icon map for {len(icons.keys())} icons') + with open(kwargs['output_file'], 'w') as f: + json.dump(icons, f, indent=2) + + self.stdout.write(f'Icon map written to {kwargs["output_file"]}') + + # Import icon map file + if kwargs['input_file']: + with open(kwargs['input_file'], 'r') as f: + icons = json.load(f) + + self.stdout.write(f'Loaded icon map for {len(icons.keys())} icons') + + self.stdout.write('Verifying icon map') + has_errors = False + + # Verify that all new icons are valid icons + for old_icon, data in icons.items(): + try: + validate_icon(data.get('new_icon', '')) + except ValidationError: + self.stdout.write( + f'[ERR] Invalid icon: "{old_icon}" -> "{data.get("new_icon", "")}' + ) + has_errors = True + + # Verify that all required items are provided in the icon map + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + if icon not in icons: + self.stdout.write( + f' [ERR] Icon "{icon}" not found in icon map' + ) + has_errors = True + + # If there are errors, stop here + if has_errors: + self.stdout.write( + '[ERR] Icon map has errors, please fix them before continuing with importing' + ) + return + + # Import the icon map into the database if the flag is set + if kwargs['import_now']: + self.stdout.write('Start importing icons and updating database...') + cnt = 0 + + for model, icon_name in ICON_MODELS: + self.stdout.write( + f'Processing model {model.__name__} with icon field {icon_name}' + ) + items = get_model_items_with_icons(model, icon_name) + + for item in items: + icon = getattr(item, icon_name) + + try: + validate_icon(icon) + continue # Skip if the icon is already valid + except ValidationError: + pass + + setattr(item, icon_name, icons[icon]['new_icon']) + cnt += 1 + item.save() + + self.stdout.write( + f'Icon map successfully imported - changed {cnt} items' + ) + self.stdout.write('Icons are now migrated') + else: + self.stdout.write('Icon map is valid and ready to be imported') + self.stdout.write( + 'Run the command with --import-now to import the icon map and update the database' + ) diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index 81a4fd002a..c9f7a31253 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -575,6 +575,9 @@ class InvenTreeTree(MetadataMixin, PluginValidationMixin, MPTTModel): # e.g. for StockLocation, this value is 'location' ITEM_PARENT_KEY = None + # Extra fields to include in the get_path result. E.g. icon + EXTRA_PATH_FIELDS = [] + class Meta: """Metaclass defines extra model properties.""" @@ -868,7 +871,14 @@ class InvenTreeTree(MetadataMixin, PluginValidationMixin, MPTTModel): name: , } """ - return [{'pk': item.pk, 'name': item.name} for item in self.path] + return [ + { + 'pk': item.pk, + 'name': item.name, + **{k: getattr(item, k, None) for k in self.EXTRA_PATH_FIELDS}, + } + for item in self.path + ] def __str__(self): """String representation of a category is the full path to that category.""" diff --git a/src/backend/InvenTree/InvenTree/ready.py b/src/backend/InvenTree/InvenTree/ready.py index 0ae788282c..b08941d1c0 100644 --- a/src/backend/InvenTree/InvenTree/ready.py +++ b/src/backend/InvenTree/InvenTree/ready.py @@ -115,6 +115,7 @@ def canAppAccessDatabase( 'makemessages', 'compilemessages', 'spectactular', + 'collectstatic', ] if not allow_shell: @@ -125,7 +126,7 @@ def canAppAccessDatabase( excluded_commands.append('test') if not allow_plugins: - excluded_commands.extend(['collectstatic', 'collectplugins']) + excluded_commands.extend(['collectplugins']) for cmd in excluded_commands: if cmd in sys.argv: diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index cedeb4e215..0d7b306ff2 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -1210,6 +1210,9 @@ ACCOUNT_FORMS = { 'reset_password_from_key': 'allauth.account.forms.ResetPasswordKeyForm', 'disconnect': 'allauth.socialaccount.forms.DisconnectForm', } +ALLAUTH_2FA_FORMS = {'setup': 'InvenTree.forms.CustomTOTPDeviceForm'} +# Determine if multi-factor authentication is enabled for this server (default = True) +MFA_ENABLED = get_boolean_setting('INVENTREE_MFA_ENABLED', 'mfa_enabled', True) SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter' ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter' diff --git a/src/backend/InvenTree/InvenTree/social_auth_urls.py b/src/backend/InvenTree/InvenTree/social_auth_urls.py index 49d9e461ee..9702750b49 100644 --- a/src/backend/InvenTree/InvenTree/social_auth_urls.py +++ b/src/backend/InvenTree/InvenTree/social_auth_urls.py @@ -3,6 +3,7 @@ import logging from importlib import import_module +from django.conf import settings from django.urls import NoReverseMatch, include, path, reverse from allauth.account.models import EmailAddress @@ -177,7 +178,9 @@ class SocialProviderListView(ListAPI): data = { 'sso_enabled': InvenTree.sso.login_enabled(), 'sso_registration': InvenTree.sso.registration_enabled(), - 'mfa_required': get_global_setting('LOGIN_ENFORCE_MFA'), + 'mfa_required': settings.MFA_ENABLED + and get_global_setting('LOGIN_ENFORCE_MFA'), + 'mfa_enabled': settings.MFA_ENABLED, 'providers': provider_list, 'registration_enabled': get_global_setting('LOGIN_ENABLE_REG'), 'password_forgotten_enabled': get_global_setting('LOGIN_ENABLE_PWD_FORGOT'), diff --git a/src/backend/InvenTree/InvenTree/static/css/inventree.css b/src/backend/InvenTree/InvenTree/static/css/inventree.css index 912f482243..185ca70e8c 100644 --- a/src/backend/InvenTree/InvenTree/static/css/inventree.css +++ b/src/backend/InvenTree/InvenTree/static/css/inventree.css @@ -1101,3 +1101,19 @@ a { .large-treeview-icon { font-size: 1em; } + +.api-icon { + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better font rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.test-statistics-table-total-row { + font-weight: bold; + border-top-style: double; +} diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE b/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE new file mode 100644 index 0000000000..974db1ac4b --- /dev/null +++ b/src/backend/InvenTree/InvenTree/static/tabler-icons/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-2024 Paweł Kuna + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json b/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json new file mode 100644 index 0000000000..0f52ecfafc --- /dev/null +++ b/src/backend/InvenTree/InvenTree/static/tabler-icons/icons.json @@ -0,0 +1 @@ +{"a-b-2":{"name":"a-b-2","category":"","tags":["test","visual","user"],"variants":{"outline":"f25f"}},"a-b-off":{"name":"a-b-off","category":"","tags":["test","visual","user"],"variants":{"outline":"f0a6"}},"a-b":{"name":"a-b","category":"","tags":["test","visual","user"],"variants":{"outline":"ec36"}},"abacus-off":{"name":"abacus-off","category":"Math","tags":["abacus","math","counting","adding up"],"variants":{"outline":"f3b6"}},"abacus":{"name":"abacus","category":"Math","tags":["abacus","math","counting","adding up"],"variants":{"outline":"f05c"}},"abc":{"name":"abc","category":"","tags":["letters","alphabet","latin"],"variants":{"outline":"f567"}},"access-point-off":{"name":"access-point-off","category":"Devices","tags":["device","hosts","airwaves","wireless","network"],"variants":{"outline":"ed1a"}},"access-point":{"name":"access-point","category":"Devices","tags":["device","hosts","airwaves","wireless","network"],"variants":{"outline":"ed1b"}},"accessible-off":{"name":"accessible-off","category":"","tags":["low-vision","blind","disability","handicapped"],"variants":{"outline":"f0a7"}},"accessible":{"name":"accessible","category":"","tags":["low-vision","blind","disability","handicapped"],"variants":{"outline":"eba9","filled":"f6ea"}},"activity-heartbeat":{"name":"activity-heartbeat","category":"","tags":["pulse","lifeline","impuls","hospital","heartrate"],"variants":{"outline":"f0db"}},"activity":{"name":"activity","category":"","tags":["pulse","motion","health","action"],"variants":{"outline":"ed23"}},"ad-2":{"name":"ad-2","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"ef1f"}},"ad-circle-off":{"name":"ad-circle-off","category":"","tags":["marketing","promotion","advertisement","shape"],"variants":{"outline":"f79d"}},"ad-circle":{"name":"ad-circle","category":"","tags":["marketing","promotion","advertisement","shape"],"variants":{"outline":"f79e","filled":"f7d3"}},"ad-off":{"name":"ad-off","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"f3b7"}},"ad":{"name":"ad","category":"Design","tags":["advert","advertisement","marketing","commercial","traffic"],"variants":{"outline":"ea02","filled":"f6eb"}},"address-book-off":{"name":"address-book-off","category":"","tags":["contact","contacts","phonebook","profile","resources"],"variants":{"outline":"f3b8"}},"address-book":{"name":"address-book","category":"","tags":["contact","contacts","phonebook","profile","resources"],"variants":{"outline":"f021"}},"adjustments-alt":{"name":"adjustments-alt","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ec37"}},"adjustments-bolt":{"name":"adjustments-bolt","category":"System","tags":[],"variants":{"outline":"f7fb"}},"adjustments-cancel":{"name":"adjustments-cancel","category":"System","tags":[],"variants":{"outline":"f7fc"}},"adjustments-check":{"name":"adjustments-check","category":"System","tags":[],"variants":{"outline":"f7fd"}},"adjustments-code":{"name":"adjustments-code","category":"System","tags":[],"variants":{"outline":"f7fe"}},"adjustments-cog":{"name":"adjustments-cog","category":"System","tags":[],"variants":{"outline":"f7ff"}},"adjustments-dollar":{"name":"adjustments-dollar","category":"System","tags":[],"variants":{"outline":"f800"}},"adjustments-down":{"name":"adjustments-down","category":"System","tags":[],"variants":{"outline":"f801"}},"adjustments-exclamation":{"name":"adjustments-exclamation","category":"System","tags":[],"variants":{"outline":"f802"}},"adjustments-heart":{"name":"adjustments-heart","category":"System","tags":[],"variants":{"outline":"f803"}},"adjustments-horizontal":{"name":"adjustments-horizontal","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ec38"}},"adjustments-minus":{"name":"adjustments-minus","category":"System","tags":[],"variants":{"outline":"f804"}},"adjustments-off":{"name":"adjustments-off","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"f0a8"}},"adjustments-pause":{"name":"adjustments-pause","category":"System","tags":[],"variants":{"outline":"f805"}},"adjustments-pin":{"name":"adjustments-pin","category":"System","tags":[],"variants":{"outline":"f806"}},"adjustments-plus":{"name":"adjustments-plus","category":"System","tags":[],"variants":{"outline":"f807"}},"adjustments-question":{"name":"adjustments-question","category":"System","tags":[],"variants":{"outline":"f808"}},"adjustments-search":{"name":"adjustments-search","category":"System","tags":[],"variants":{"outline":"f809"}},"adjustments-share":{"name":"adjustments-share","category":"System","tags":[],"variants":{"outline":"f80a"}},"adjustments-star":{"name":"adjustments-star","category":"System","tags":[],"variants":{"outline":"f80b"}},"adjustments-up":{"name":"adjustments-up","category":"System","tags":[],"variants":{"outline":"f80c"}},"adjustments-x":{"name":"adjustments-x","category":"System","tags":[],"variants":{"outline":"f80d"}},"adjustments":{"name":"adjustments","category":"System","tags":["equalizer","sliders","controls","settings","filter"],"variants":{"outline":"ea03","filled":"f6ec"}},"aerial-lift":{"name":"aerial-lift","category":"Vehicles","tags":["cable","car","gondola","mountains","ski","tramway"],"variants":{"outline":"edfe"}},"affiliate":{"name":"affiliate","category":"","tags":["network","connection","collaboration","people","connect","organization","networking"],"variants":{"outline":"edff","filled":"f6ed"}},"ai":{"name":"ai","category":"","tags":["artificial intelligence","letters","text","technology","robot","automatic","character"],"variants":{"outline":"fee7"}},"air-balloon":{"name":"air-balloon","category":"Vehicles","tags":["travel","adventure","attraction","fly","transport"],"variants":{"outline":"f4a6"}},"air-conditioning-disabled":{"name":"air-conditioning-disabled","category":"","tags":["cold","home","cooling","hot","off"],"variants":{"outline":"f542"}},"air-conditioning":{"name":"air-conditioning","category":"","tags":["cold","ice","home","cooling","heating","hot"],"variants":{"outline":"f3a2"}},"air-traffic-control":{"name":"air-traffic-control","category":"Map","tags":[],"variants":{"outline":"fb01"}},"alarm-average":{"name":"alarm-average","category":"System","tags":["notification","metric","ringing","mean","alertness","time","clockwork","signal","bell","chime"],"variants":{"outline":"fc9e"}},"alarm-minus":{"name":"alarm-minus","category":"System","tags":["alarm","bell","notification","delete","remove"],"variants":{"outline":"f630","filled":"f70a"}},"alarm-off":{"name":"alarm-off","category":"System","tags":["time","watch","clock","ring"],"variants":{"outline":"f0a9"}},"alarm-plus":{"name":"alarm-plus","category":"System","tags":["alarm","bell","notification","add","new"],"variants":{"outline":"f631","filled":"f70b"}},"alarm-snooze":{"name":"alarm-snooze","category":"System","tags":["alarm","bell","notification","sleep","nap"],"variants":{"outline":"f632","filled":"f70c"}},"alarm":{"name":"alarm","category":"System","tags":["time","watch","clock","ring"],"variants":{"outline":"ea04","filled":"f709"}},"album-off":{"name":"album-off","category":"","tags":["photos","photography","gallery","music","image"],"variants":{"outline":"f3b9"}},"album":{"name":"album","category":"","tags":["photos","photography","gallery","music","image"],"variants":{"outline":"f022"}},"alert-circle-off":{"name":"alert-circle-off","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"fc65"}},"alert-circle":{"name":"alert-circle","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ea05","filled":"f6ee"}},"alert-hexagon-off":{"name":"alert-hexagon-off","category":"System","tags":[],"variants":{"outline":"fc66"}},"alert-hexagon":{"name":"alert-hexagon","category":"System","tags":[],"variants":{"outline":"f80e","filled":"fa34"}},"alert-octagon":{"name":"alert-octagon","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ecc6","filled":"f6ef"}},"alert-small-off":{"name":"alert-small-off","category":"System","tags":[],"variants":{"outline":"fc67"}},"alert-small":{"name":"alert-small","category":"System","tags":[],"variants":{"outline":"f80f"}},"alert-square-rounded-off":{"name":"alert-square-rounded-off","category":"System","tags":[],"variants":{"outline":"fc68"}},"alert-square-rounded":{"name":"alert-square-rounded","category":"System","tags":[],"variants":{"outline":"f810","filled":"fa36"}},"alert-square":{"name":"alert-square","category":"System","tags":[],"variants":{"outline":"f811","filled":"fa35"}},"alert-triangle-off":{"name":"alert-triangle-off","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"fc69"}},"alert-triangle":{"name":"alert-triangle","category":"System","tags":["warning","danger","caution","risk"],"variants":{"outline":"ea06","filled":"f6f0"}},"alien":{"name":"alien","category":"","tags":["universe","extraterrestrial","ufo","space","galaxy","planet"],"variants":{"outline":"ebde","filled":"f70d"}},"align-box-bottom-center":{"name":"align-box-bottom-center","category":"Text","tags":["text","type","down","south"],"variants":{"outline":"f530","filled":"f70e"}},"align-box-bottom-left":{"name":"align-box-bottom-left","category":"Text","tags":["text","type","west","corner"],"variants":{"outline":"f531","filled":"f70f"}},"align-box-bottom-right":{"name":"align-box-bottom-right","category":"Text","tags":["text","type","east","corner"],"variants":{"outline":"f532","filled":"f710"}},"align-box-center-bottom":{"name":"align-box-center-bottom","category":"Text","tags":[],"variants":{"outline":"facb"}},"align-box-center-middle":{"name":"align-box-center-middle","category":"Text","tags":["text","type","line","horizontal"],"variants":{"outline":"f79f","filled":"f7d4"}},"align-box-center-stretch":{"name":"align-box-center-stretch","category":"Text","tags":[],"variants":{"outline":"facc"}},"align-box-center-top":{"name":"align-box-center-top","category":"Text","tags":[],"variants":{"outline":"facd"}},"align-box-left-bottom":{"name":"align-box-left-bottom","category":"Text","tags":["text","type","west","down","south","corner"],"variants":{"outline":"f533","filled":"f711"}},"align-box-left-middle":{"name":"align-box-left-middle","category":"Text","tags":["text","type","west"],"variants":{"outline":"f534","filled":"f712"}},"align-box-left-stretch":{"name":"align-box-left-stretch","category":"Text","tags":[],"variants":{"outline":"face"}},"align-box-left-top":{"name":"align-box-left-top","category":"Text","tags":["text","type","west","up","north","corner"],"variants":{"outline":"f535","filled":"f713"}},"align-box-right-bottom":{"name":"align-box-right-bottom","category":"Text","tags":["text","type","east","down","south","corner"],"variants":{"outline":"f536","filled":"f714"}},"align-box-right-middle":{"name":"align-box-right-middle","category":"Text","tags":["text","type","east"],"variants":{"outline":"f537","filled":"f7d5"}},"align-box-right-stretch":{"name":"align-box-right-stretch","category":"Text","tags":[],"variants":{"outline":"facf"}},"align-box-right-top":{"name":"align-box-right-top","category":"Text","tags":["text","type","east","up","north","corner"],"variants":{"outline":"f538","filled":"f715"}},"align-box-top-center":{"name":"align-box-top-center","category":"Text","tags":["text","type","up","north"],"variants":{"outline":"f539","filled":"f716"}},"align-box-top-left":{"name":"align-box-top-left","category":"Text","tags":["text","type","up","north","east","corner"],"variants":{"outline":"f53a","filled":"f717"}},"align-box-top-right":{"name":"align-box-top-right","category":"Text","tags":["text","type","up","north","west","corner"],"variants":{"outline":"f53b","filled":"f718"}},"align-center":{"name":"align-center","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea07"}},"align-justified":{"name":"align-justified","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea08"}},"align-left-2":{"name":"align-left-2","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ff00"}},"align-left":{"name":"align-left","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea09"}},"align-right-2":{"name":"align-right-2","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"feff"}},"align-right":{"name":"align-right","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"ea0a"}},"alpha":{"name":"alpha","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f543"}},"alphabet-arabic":{"name":"alphabet-arabic","category":"Text","tags":[],"variants":{"outline":"ff2f"}},"alphabet-bangla":{"name":"alphabet-bangla","category":"Text","tags":["language","alphabet","bangla","bengali"],"variants":{"outline":"ff2e"}},"alphabet-cyrillic":{"name":"alphabet-cyrillic","category":"Text","tags":["russia","letters","language"],"variants":{"outline":"f1df"}},"alphabet-greek":{"name":"alphabet-greek","category":"Text","tags":["letters","language","alpha","beta"],"variants":{"outline":"f1e0"}},"alphabet-hebrew":{"name":"alphabet-hebrew","category":"Text","tags":["language","alphabet","hebrew","jewish"],"variants":{"outline":"ff2d"}},"alphabet-korean":{"name":"alphabet-korean","category":"Text","tags":["language","alphabet","korean"],"variants":{"outline":"ff2c"}},"alphabet-latin":{"name":"alphabet-latin","category":"Text","tags":["letters","language","rome"],"variants":{"outline":"f1e1"}},"alphabet-thai":{"name":"alphabet-thai","category":"Text","tags":["language","alphabet","thailand"],"variants":{"outline":"ff2b"}},"alt":{"name":"alt","category":"","tags":["alternative","substitute","replacement","variant","different","alternate","variation","stand-in","option","choice"],"variants":{"outline":"fc54"}},"ambulance":{"name":"ambulance","category":"Vehicles","tags":["vehicle","car","hospital","ward","doctor","rescuer"],"variants":{"outline":"ebf5"}},"ampersand":{"name":"ampersand","category":"Math","tags":["and","also","besides","moreover"],"variants":{"outline":"f229"}},"analyze-off":{"name":"analyze-off","category":"","tags":["analytics","data","statistics","graph"],"variants":{"outline":"f3ba"}},"analyze":{"name":"analyze","category":"","tags":["analytics","data","statistics","graph"],"variants":{"outline":"f3a3","filled":"f719"}},"anchor-off":{"name":"anchor-off","category":"Map","tags":["hold","ship","harbor","docks"],"variants":{"outline":"f0f7"}},"anchor":{"name":"anchor","category":"Map","tags":["hold","ship","harbor","docks"],"variants":{"outline":"eb76"}},"angle":{"name":"angle","category":"Design","tags":["geometry","math","degrees"],"variants":{"outline":"ef20"}},"ankh":{"name":"ankh","category":"Symbols","tags":["egypt","religion","cultures","community"],"variants":{"outline":"f1cd"}},"antenna-bars-1":{"name":"antenna-bars-1","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc7"}},"antenna-bars-2":{"name":"antenna-bars-2","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc8"}},"antenna-bars-3":{"name":"antenna-bars-3","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecc9"}},"antenna-bars-4":{"name":"antenna-bars-4","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"ecca"}},"antenna-bars-5":{"name":"antenna-bars-5","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"eccb"}},"antenna-bars-off":{"name":"antenna-bars-off","category":"Devices","tags":["signal","wireless","wi-fi","quality"],"variants":{"outline":"f0aa"}},"antenna-off":{"name":"antenna-off","category":"Devices","tags":["reach","tv","network","connetion","signal","communication"],"variants":{"outline":"f3bb"}},"antenna":{"name":"antenna","category":"Devices","tags":["reach","tv","network","connetion","signal","communication"],"variants":{"outline":"f094"}},"aperture-off":{"name":"aperture-off","category":"Photography","tags":["hole","opening","vent"],"variants":{"outline":"f3bc"}},"aperture":{"name":"aperture","category":"Photography","tags":["hole","opening","vent"],"variants":{"outline":"eb58"}},"api-app-off":{"name":"api-app-off","category":"Development","tags":["development","software","developer","platform"],"variants":{"outline":"f0ab"}},"api-app":{"name":"api-app","category":"Development","tags":["development","software","developer","platform"],"variants":{"outline":"effc"}},"api-off":{"name":"api-off","category":"Development","tags":["programming","coding","program","code","configuration"],"variants":{"outline":"f0f8"}},"api":{"name":"api","category":"Development","tags":["programming","coding","program","code","configuration"],"variants":{"outline":"effd"}},"app-window":{"name":"app-window","category":"","tags":["browser","page","website","web","interface"],"variants":{"outline":"efe6","filled":"f71a"}},"apple":{"name":"apple","category":"Food","tags":["fruit","healthy","diet","fitness"],"variants":{"outline":"ef21"}},"apps-off":{"name":"apps-off","category":"Development","tags":["application","add-on","user","download","mobile"],"variants":{"outline":"f0ac"}},"apps":{"name":"apps","category":"Development","tags":["application","add-on","user","download","mobile"],"variants":{"outline":"ebb6","filled":"f6f1"}},"archery-arrow":{"name":"archery-arrow","category":"","tags":["bow","target","shoot","sports","archer","hunting","bullseye","flight","quiver","precision"],"variants":{"outline":"fc55"}},"archive-off":{"name":"archive-off","category":"Document","tags":["box","index","records","old","collect"],"variants":{"outline":"f0ad"}},"archive":{"name":"archive","category":"Document","tags":["box","index","records","old","collect"],"variants":{"outline":"ea0b","filled":"fa82"}},"armchair-2-off":{"name":"armchair-2-off","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"f3bd"}},"armchair-2":{"name":"armchair-2","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"efe7"}},"armchair-off":{"name":"armchair-off","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"f3be"}},"armchair":{"name":"armchair","category":"","tags":["seat","chair","sofa","home","furniture"],"variants":{"outline":"ef9e"}},"arrow-autofit-content":{"name":"arrow-autofit-content","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef31","filled":"f6f2"}},"arrow-autofit-down":{"name":"arrow-autofit-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"ef32"}},"arrow-autofit-height":{"name":"arrow-autofit-height","category":"Arrows","tags":["direction","north","up","down","south"],"variants":{"outline":"ef33"}},"arrow-autofit-left":{"name":"arrow-autofit-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"ef34"}},"arrow-autofit-right":{"name":"arrow-autofit-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef35"}},"arrow-autofit-up":{"name":"arrow-autofit-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"ef36"}},"arrow-autofit-width":{"name":"arrow-autofit-width","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"ef37"}},"arrow-back-up-double":{"name":"arrow-back-up-double","category":"Arrows","tags":[],"variants":{"outline":"f9ec"}},"arrow-back-up":{"name":"arrow-back-up","category":"Arrows","tags":["pointer","return","revert","reverse","undo","left"],"variants":{"outline":"eb77"}},"arrow-back":{"name":"arrow-back","category":"Arrows","tags":["pointer","return","revert","reverse","undo","left"],"variants":{"outline":"ea0c"}},"arrow-badge-down":{"name":"arrow-badge-down","category":"Arrows","tags":["army","badge","military","rank","soldier","war","south","bottom"],"variants":{"outline":"f60b","filled":"f7d6"}},"arrow-badge-left":{"name":"arrow-badge-left","category":"Arrows","tags":["army","badge","military","rank","soldier","war","west"],"variants":{"outline":"f60c","filled":"f7d7"}},"arrow-badge-right":{"name":"arrow-badge-right","category":"Arrows","tags":["army","badge","military","rank","soldier","war","east"],"variants":{"outline":"f60d","filled":"f7d8"}},"arrow-badge-up":{"name":"arrow-badge-up","category":"Arrows","tags":["army","badge","military","rank","soldier","war","north"],"variants":{"outline":"f60e","filled":"f7d9"}},"arrow-bar-both":{"name":"arrow-bar-both","category":"Arrows","tags":[],"variants":{"outline":"fadd"}},"arrow-bar-down":{"name":"arrow-bar-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0d"}},"arrow-bar-left":{"name":"arrow-bar-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0e"}},"arrow-bar-right":{"name":"arrow-bar-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea0f"}},"arrow-bar-to-down":{"name":"arrow-bar-to-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec88"}},"arrow-bar-to-left":{"name":"arrow-bar-to-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec89"}},"arrow-bar-to-right":{"name":"arrow-bar-to-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec8a"}},"arrow-bar-to-up":{"name":"arrow-bar-to-up","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ec8b"}},"arrow-bar-up":{"name":"arrow-bar-up","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea10"}},"arrow-bear-left-2":{"name":"arrow-bear-left-2","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f044"}},"arrow-bear-left":{"name":"arrow-bear-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f045"}},"arrow-bear-right-2":{"name":"arrow-bear-right-2","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f046"}},"arrow-bear-right":{"name":"arrow-bear-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f047"}},"arrow-big-down-line":{"name":"arrow-big-down-line","category":"Arrows","tags":["direction","south"],"variants":{"outline":"efe8","filled":"f6c7"}},"arrow-big-down-lines":{"name":"arrow-big-down-lines","category":"Arrows","tags":["direction","south"],"variants":{"outline":"efe9","filled":"f6c8"}},"arrow-big-down":{"name":"arrow-big-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edda","filled":"f6c6"}},"arrow-big-left-line":{"name":"arrow-big-left-line","category":"Arrows","tags":["direction","west"],"variants":{"outline":"efea","filled":"f6ca"}},"arrow-big-left-lines":{"name":"arrow-big-left-lines","category":"Arrows","tags":["direction","west"],"variants":{"outline":"efeb","filled":"f6cb"}},"arrow-big-left":{"name":"arrow-big-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"eddb","filled":"f6c9"}},"arrow-big-right-line":{"name":"arrow-big-right-line","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"efec","filled":"f6cd"}},"arrow-big-right-lines":{"name":"arrow-big-right-lines","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"efed","filled":"f6ce"}},"arrow-big-right":{"name":"arrow-big-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"eddc","filled":"f6cc"}},"arrow-big-up-line":{"name":"arrow-big-up-line","category":"Arrows","tags":["direction","north"],"variants":{"outline":"efee","filled":"f6d0"}},"arrow-big-up-lines":{"name":"arrow-big-up-lines","category":"Arrows","tags":["direction","north"],"variants":{"outline":"efef","filled":"f6d1"}},"arrow-big-up":{"name":"arrow-big-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eddd","filled":"f6cf"}},"arrow-bounce":{"name":"arrow-bounce","category":"Arrows","tags":["direction","cursor","up","pointer","move"],"variants":{"outline":"f3a4"}},"arrow-capsule":{"name":"arrow-capsule","category":"Arrows","tags":[],"variants":{"outline":"fade"}},"arrow-curve-left":{"name":"arrow-curve-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f048"}},"arrow-curve-right":{"name":"arrow-curve-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f049"}},"arrow-down-bar":{"name":"arrow-down-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed98"}},"arrow-down-circle":{"name":"arrow-down-circle","category":"Arrows","tags":["proceed","swipe","below","bottom"],"variants":{"outline":"ea11"}},"arrow-down-from-arc":{"name":"arrow-down-from-arc","category":"","tags":[],"variants":{"outline":"fd86"}},"arrow-down-left-circle":{"name":"arrow-down-left-circle","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea12"}},"arrow-down-left":{"name":"arrow-down-left","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea13"}},"arrow-down-rhombus":{"name":"arrow-down-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","bottom","south"],"variants":{"outline":"f61d"}},"arrow-down-right-circle":{"name":"arrow-down-right-circle","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea14"}},"arrow-down-right":{"name":"arrow-down-right","category":"Arrows","tags":["corner","bottom","point"],"variants":{"outline":"ea15"}},"arrow-down-square":{"name":"arrow-down-square","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9a"}},"arrow-down-tail":{"name":"arrow-down-tail","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9b"}},"arrow-down-to-arc":{"name":"arrow-down-to-arc","category":"","tags":[],"variants":{"outline":"fd87"}},"arrow-down":{"name":"arrow-down","category":"Arrows","tags":["proceed","swipe","below","bottom"],"variants":{"outline":"ea16"}},"arrow-elbow-left":{"name":"arrow-elbow-left","category":"Arrows","tags":[],"variants":{"outline":"f9ed"}},"arrow-elbow-right":{"name":"arrow-elbow-right","category":"Arrows","tags":[],"variants":{"outline":"f9ee"}},"arrow-fork":{"name":"arrow-fork","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f04a"}},"arrow-forward-up-double":{"name":"arrow-forward-up-double","category":"Arrows","tags":[],"variants":{"outline":"f9ef"}},"arrow-forward-up":{"name":"arrow-forward-up","category":"Arrows","tags":["point","turn","next","redo","right"],"variants":{"outline":"eb78"}},"arrow-forward":{"name":"arrow-forward","category":"Arrows","tags":["point","turn","next","redo","right"],"variants":{"outline":"ea17"}},"arrow-guide":{"name":"arrow-guide","category":"Arrows","tags":["direction","west","bend","navigation"],"variants":{"outline":"f22a"}},"arrow-iteration":{"name":"arrow-iteration","category":"Arrows","tags":["direction","loop","right","east"],"variants":{"outline":"f578"}},"arrow-left-bar":{"name":"arrow-left-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9c"}},"arrow-left-circle":{"name":"arrow-left-circle","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea18"}},"arrow-left-from-arc":{"name":"arrow-left-from-arc","category":"","tags":[],"variants":{"outline":"fd88"}},"arrow-left-rhombus":{"name":"arrow-left-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","west"],"variants":{"outline":"f61e"}},"arrow-left-right":{"name":"arrow-left-right","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f04b"}},"arrow-left-square":{"name":"arrow-left-square","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9d"}},"arrow-left-tail":{"name":"arrow-left-tail","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ed9e"}},"arrow-left-to-arc":{"name":"arrow-left-to-arc","category":"","tags":[],"variants":{"outline":"fd89"}},"arrow-left":{"name":"arrow-left","category":"Arrows","tags":["back","swipe","return"],"variants":{"outline":"ea19"}},"arrow-loop-left-2":{"name":"arrow-loop-left-2","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f04c"}},"arrow-loop-left":{"name":"arrow-loop-left","category":"Arrows","tags":["drag","move","turn"],"variants":{"outline":"ed9f"}},"arrow-loop-right-2":{"name":"arrow-loop-right-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f04d"}},"arrow-loop-right":{"name":"arrow-loop-right","category":"Arrows","tags":["drag","move","turn"],"variants":{"outline":"eda0"}},"arrow-merge-alt-left":{"name":"arrow-merge-alt-left","category":"Arrows","tags":["merge-left","shift-left","combine-left","direction-left","join-left","move-left","alt-left-arrow","leftward","left-shift","left-merge"],"variants":{"outline":"fc9f"}},"arrow-merge-alt-right":{"name":"arrow-merge-alt-right","category":"Arrows","tags":["merge-right","shift-right","combine-right","direction-right","join-right","move-right","alt-right-arrow","rightward","right-shift","right-merge"],"variants":{"outline":"fca0"}},"arrow-merge-both":{"name":"arrow-merge-both","category":"Arrows","tags":["direction","up","north","higher","right","left"],"variants":{"outline":"f23b"}},"arrow-merge-left":{"name":"arrow-merge-left","category":"Arrows","tags":["direction","up","north","higher"],"variants":{"outline":"f23c"}},"arrow-merge-right":{"name":"arrow-merge-right","category":"Arrows","tags":["direction","up","north","higher"],"variants":{"outline":"f23d"}},"arrow-merge":{"name":"arrow-merge","category":"Arrows","tags":["direction","north","up"],"variants":{"outline":"f04e"}},"arrow-move-down":{"name":"arrow-move-down","category":"Arrows","tags":["direction","south","bottom"],"variants":{"outline":"f2ba"}},"arrow-move-left":{"name":"arrow-move-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f2bb"}},"arrow-move-right":{"name":"arrow-move-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f2bc"}},"arrow-move-up":{"name":"arrow-move-up","category":"Arrows","tags":["direction","north","top"],"variants":{"outline":"f2bd"}},"arrow-narrow-down":{"name":"arrow-narrow-down","category":"Arrows","tags":["bottom","proceed","swipe","next"],"variants":{"outline":"ea1a"}},"arrow-narrow-left":{"name":"arrow-narrow-left","category":"Arrows","tags":["back","previous","pointer","point"],"variants":{"outline":"ea1b"}},"arrow-narrow-right":{"name":"arrow-narrow-right","category":"Arrows","tags":["next","proceed","point","pointer"],"variants":{"outline":"ea1c"}},"arrow-narrow-up":{"name":"arrow-narrow-up","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea1d"}},"arrow-ramp-left-2":{"name":"arrow-ramp-left-2","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f04f"}},"arrow-ramp-left-3":{"name":"arrow-ramp-left-3","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f050"}},"arrow-ramp-left":{"name":"arrow-ramp-left","category":"Arrows","tags":["direction","side","turn"],"variants":{"outline":"ed3c"}},"arrow-ramp-right-2":{"name":"arrow-ramp-right-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f051"}},"arrow-ramp-right-3":{"name":"arrow-ramp-right-3","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f052"}},"arrow-ramp-right":{"name":"arrow-ramp-right","category":"Arrows","tags":["direction","side","turn"],"variants":{"outline":"ed3d"}},"arrow-right-bar":{"name":"arrow-right-bar","category":"Arrows","tags":["drag","move"],"variants":{"outline":"eda1"}},"arrow-right-circle":{"name":"arrow-right-circle","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ea1e"}},"arrow-right-from-arc":{"name":"arrow-right-from-arc","category":"","tags":[],"variants":{"outline":"fd8a"}},"arrow-right-rhombus":{"name":"arrow-right-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","east"],"variants":{"outline":"f61f"}},"arrow-right-square":{"name":"arrow-right-square","category":"Arrows","tags":["direction","east"],"variants":{"outline":"eda2"}},"arrow-right-tail":{"name":"arrow-right-tail","category":"Arrows","tags":["direction","east"],"variants":{"outline":"eda3"}},"arrow-right-to-arc":{"name":"arrow-right-to-arc","category":"","tags":[],"variants":{"outline":"fd8b"}},"arrow-right":{"name":"arrow-right","category":"Arrows","tags":["next","proceed","swipe"],"variants":{"outline":"ea1f"}},"arrow-rotary-first-left":{"name":"arrow-rotary-first-left","category":"Arrows","tags":["direction","south"],"variants":{"outline":"f053"}},"arrow-rotary-first-right":{"name":"arrow-rotary-first-right","category":"Arrows","tags":["direction","south"],"variants":{"outline":"f054"}},"arrow-rotary-last-left":{"name":"arrow-rotary-last-left","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f055"}},"arrow-rotary-last-right":{"name":"arrow-rotary-last-right","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f056"}},"arrow-rotary-left":{"name":"arrow-rotary-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"f057"}},"arrow-rotary-right":{"name":"arrow-rotary-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"f058"}},"arrow-rotary-straight":{"name":"arrow-rotary-straight","category":"Arrows","tags":["direction","north"],"variants":{"outline":"f059"}},"arrow-roundabout-left":{"name":"arrow-roundabout-left","category":"Arrows","tags":["direction","east","traffic","circle"],"variants":{"outline":"f22b"}},"arrow-roundabout-right":{"name":"arrow-roundabout-right","category":"Arrows","tags":["direction","west","traffic","circle"],"variants":{"outline":"f22c"}},"arrow-sharp-turn-left":{"name":"arrow-sharp-turn-left","category":"Arrows","tags":["direction","north","down"],"variants":{"outline":"f05a"}},"arrow-sharp-turn-right":{"name":"arrow-sharp-turn-right","category":"Arrows","tags":["direction","south","down"],"variants":{"outline":"f05b"}},"arrow-up-bar":{"name":"arrow-up-bar","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda4"}},"arrow-up-circle":{"name":"arrow-up-circle","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea20"}},"arrow-up-from-arc":{"name":"arrow-up-from-arc","category":"","tags":[],"variants":{"outline":"fd8c"}},"arrow-up-left-circle":{"name":"arrow-up-left-circle","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea21"}},"arrow-up-left":{"name":"arrow-up-left","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea22"}},"arrow-up-rhombus":{"name":"arrow-up-rhombus","category":"Arrows","tags":["proceed","swipe","below","shape","top","north"],"variants":{"outline":"f620"}},"arrow-up-right-circle":{"name":"arrow-up-right-circle","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea23"}},"arrow-up-right":{"name":"arrow-up-right","category":"Arrows","tags":["top","corner","point"],"variants":{"outline":"ea24"}},"arrow-up-square":{"name":"arrow-up-square","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda6"}},"arrow-up-tail":{"name":"arrow-up-tail","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda7"}},"arrow-up-to-arc":{"name":"arrow-up-to-arc","category":"","tags":[],"variants":{"outline":"fd8d"}},"arrow-up":{"name":"arrow-up","category":"Arrows","tags":["top","point"],"variants":{"outline":"ea25"}},"arrow-wave-left-down":{"name":"arrow-wave-left-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"eda8"}},"arrow-wave-left-up":{"name":"arrow-wave-left-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"eda9"}},"arrow-wave-right-down":{"name":"arrow-wave-right-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edaa"}},"arrow-wave-right-up":{"name":"arrow-wave-right-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"edab"}},"arrow-zig-zag":{"name":"arrow-zig-zag","category":"Arrows","tags":["direction","cursor","pointer","turn","move"],"variants":{"outline":"f4a7"}},"arrows-cross":{"name":"arrows-cross","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"effe"}},"arrows-diagonal-2":{"name":"arrows-diagonal-2","category":"Arrows","tags":["zoom","corners","stretch"],"variants":{"outline":"ea26"}},"arrows-diagonal-minimize-2":{"name":"arrows-diagonal-minimize-2","category":"Arrows","tags":["direction","south","north"],"variants":{"outline":"ef38"}},"arrows-diagonal-minimize":{"name":"arrows-diagonal-minimize","category":"Arrows","tags":["direction","south","north"],"variants":{"outline":"ef39"}},"arrows-diagonal":{"name":"arrows-diagonal","category":"Arrows","tags":["zoom","corners","stretch"],"variants":{"outline":"ea27"}},"arrows-diff":{"name":"arrows-diff","category":"Arrows","tags":["direction","right","left","west","east"],"variants":{"outline":"f296"}},"arrows-double-ne-sw":{"name":"arrows-double-ne-sw","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edde"}},"arrows-double-nw-se":{"name":"arrows-double-nw-se","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"eddf"}},"arrows-double-se-nw":{"name":"arrows-double-se-nw","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"ede0"}},"arrows-double-sw-ne":{"name":"arrows-double-sw-ne","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"ede1"}},"arrows-down-up":{"name":"arrows-down-up","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edac"}},"arrows-down":{"name":"arrows-down","category":"Arrows","tags":["direction","south"],"variants":{"outline":"edad"}},"arrows-exchange-2":{"name":"arrows-exchange-2","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f1f3"}},"arrows-exchange":{"name":"arrows-exchange","category":"Arrows","tags":["direction","west","east"],"variants":{"outline":"f1f4"}},"arrows-horizontal":{"name":"arrows-horizontal","category":"Arrows","tags":["zoom","stretch","left","right"],"variants":{"outline":"eb59"}},"arrows-join-2":{"name":"arrows-join-2","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edae"}},"arrows-join":{"name":"arrows-join","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edaf"}},"arrows-left-down":{"name":"arrows-left-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee00"}},"arrows-left-right":{"name":"arrows-left-right","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"edb0"}},"arrows-left":{"name":"arrows-left","category":"Arrows","tags":["direction","west"],"variants":{"outline":"edb1"}},"arrows-maximize":{"name":"arrows-maximize","category":"Arrows","tags":["fullscreen","expand"],"variants":{"outline":"ea28"}},"arrows-minimize":{"name":"arrows-minimize","category":"Arrows","tags":["fullscreen","exit","close"],"variants":{"outline":"ea29"}},"arrows-move-horizontal":{"name":"arrows-move-horizontal","category":"Arrows","tags":["direction","west","east","left","right"],"variants":{"outline":"f22d"}},"arrows-move-vertical":{"name":"arrows-move-vertical","category":"Arrows","tags":["direction","up","north","south","down","higher","lower"],"variants":{"outline":"f22e"}},"arrows-move":{"name":"arrows-move","category":"Arrows","tags":["direction","navigation","left","right","up","down","north","south","west","east","higher","lower"],"variants":{"outline":"f22f"}},"arrows-random":{"name":"arrows-random","category":"Arrows","tags":["direction","north","south","west","east"],"variants":{"outline":"f095"}},"arrows-right-down":{"name":"arrows-right-down","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee01"}},"arrows-right-left":{"name":"arrows-right-left","category":"Arrows","tags":["direction","east","west"],"variants":{"outline":"edb2"}},"arrows-right":{"name":"arrows-right","category":"Arrows","tags":["direction","east"],"variants":{"outline":"edb3"}},"arrows-shuffle-2":{"name":"arrows-shuffle-2","category":"Arrows","tags":["direction","random","cross","mix","music"],"variants":{"outline":"efff"}},"arrows-shuffle":{"name":"arrows-shuffle","category":"Arrows","tags":["direction","random","cross","mix","music"],"variants":{"outline":"f000"}},"arrows-sort":{"name":"arrows-sort","category":"Arrows","tags":["top","bottom","parallel","order"],"variants":{"outline":"eb5a"}},"arrows-split-2":{"name":"arrows-split-2","category":"Arrows","tags":["direction","navigation","east"],"variants":{"outline":"edb4"}},"arrows-split":{"name":"arrows-split","category":"Arrows","tags":["direction","navigation","east"],"variants":{"outline":"edb5"}},"arrows-transfer-down":{"name":"arrows-transfer-down","category":"Arrows","tags":["direction","south","bottom"],"variants":{"outline":"f2cc"}},"arrows-transfer-up":{"name":"arrows-transfer-up","category":"Arrows","tags":["direction","north","top"],"variants":{"outline":"f2cd"}},"arrows-up-down":{"name":"arrows-up-down","category":"Arrows","tags":["direction","north","south"],"variants":{"outline":"edb6"}},"arrows-up-left":{"name":"arrows-up-left","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee02"}},"arrows-up-right":{"name":"arrows-up-right","category":"Arrows","tags":["drag","move"],"variants":{"outline":"ee03"}},"arrows-up":{"name":"arrows-up","category":"Arrows","tags":["direction","north"],"variants":{"outline":"edb7"}},"arrows-vertical":{"name":"arrows-vertical","category":"Arrows","tags":["expand","stretch","top","bottom"],"variants":{"outline":"eb5b"}},"artboard-off":{"name":"artboard-off","category":"Design","tags":["graphics","drawing","design","art","canvas"],"variants":{"outline":"f0ae"}},"artboard":{"name":"artboard","category":"Design","tags":["graphics","drawing","design","art","canvas"],"variants":{"outline":"ea2a","filled":"fa83"}},"article-off":{"name":"article-off","category":"","tags":["news","newspaper","media","blog"],"variants":{"outline":"f3bf"}},"article":{"name":"article","category":"","tags":["news","newspaper","media","blog"],"variants":{"outline":"f1e2","filled":"f7da"}},"aspect-ratio-off":{"name":"aspect-ratio-off","category":"Media","tags":["size","dimension","width","height","orientation"],"variants":{"outline":"f0af"}},"aspect-ratio":{"name":"aspect-ratio","category":"Media","tags":["size","dimension","width","height","orientation"],"variants":{"outline":"ed30","filled":"f7db"}},"assembly-off":{"name":"assembly-off","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f3c0"}},"assembly":{"name":"assembly","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f24d","filled":"fe9e"}},"asset":{"name":"asset","category":"Development","tags":["assembly","engineering","manufacturing","production","robotics"],"variants":{"outline":"f1ce","filled":"fe9d"}},"asterisk-simple":{"name":"asterisk-simple","category":"Text","tags":["star","password","security"],"variants":{"outline":"efd4"}},"asterisk":{"name":"asterisk","category":"Text","tags":["star","password","security"],"variants":{"outline":"efd5"}},"at-off":{"name":"at-off","category":"Text","tags":["email","message","mention","sign","@"],"variants":{"outline":"f0b0"}},"at":{"name":"at","category":"Text","tags":["email","message","mention","sign","@"],"variants":{"outline":"ea2b"}},"atom-2":{"name":"atom-2","category":"","tags":["unit","element","part","electrons","protons","neutrons"],"variants":{"outline":"ebdf","filled":"f71b"}},"atom-off":{"name":"atom-off","category":"","tags":["unit","element","part","electrons"],"variants":{"outline":"f0f9"}},"atom":{"name":"atom","category":"","tags":["unit","element","part","electrons"],"variants":{"outline":"eb79"}},"augmented-reality-2":{"name":"augmented-reality-2","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f37e"}},"augmented-reality-off":{"name":"augmented-reality-off","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f3c1"}},"augmented-reality":{"name":"augmented-reality","category":"","tags":["technology","dimensional","geometry"],"variants":{"outline":"f023"}},"auth-2fa":{"name":"auth-2fa","category":"","tags":["login","password","verification","code","two-step"],"variants":{"outline":"eca0"}},"automatic-gearbox":{"name":"automatic-gearbox","category":"Vehicles","tags":[],"variants":{"outline":"fc89"}},"automation":{"name":"automation","category":"","tags":[],"variants":{"outline":"fef8"}},"avocado":{"name":"avocado","category":"","tags":[],"variants":{"outline":"fd8e"}},"award-off":{"name":"award-off","category":"","tags":["prize","reward","competition","contest","win"],"variants":{"outline":"f0fa"}},"award":{"name":"award","category":"","tags":["prize","reward","competition","contest","win"],"variants":{"outline":"ea2c","filled":"f71c"}},"axe":{"name":"axe","category":"","tags":["blade","wood","tool","hatchet"],"variants":{"outline":"ef9f"}},"axis-x":{"name":"axis-x","category":"Arrows","tags":["math","geometry"],"variants":{"outline":"ef45"}},"axis-y":{"name":"axis-y","category":"Arrows","tags":["math","geometry"],"variants":{"outline":"ef46"}},"baby-bottle":{"name":"baby-bottle","category":"Health","tags":["kid","milk","child","food","drink","feeding"],"variants":{"outline":"f5d2"}},"baby-carriage":{"name":"baby-carriage","category":"Health","tags":["child","infant","cradle","pram"],"variants":{"outline":"f05d","filled":"fe9c"}},"background":{"name":"background","category":"","tags":["backdrop","setting","context","environment","scene","ambient","surroundings","scape","contextual","atmosphere"],"variants":{"outline":"fd2c"}},"backhoe":{"name":"backhoe","category":"Vehicles","tags":["rear","equipment","digger","excavation","tractor","loader","construction","site","excavator"],"variants":{"outline":"ed86"}},"backpack-off":{"name":"backpack-off","category":"","tags":["education","school","learning","adventure","travel"],"variants":{"outline":"f3c2"}},"backpack":{"name":"backpack","category":"","tags":["education","school","learning","adventure","travel"],"variants":{"outline":"ef47"}},"backslash":{"name":"backslash","category":"Math","tags":[],"variants":{"outline":"fab9"}},"backspace":{"name":"backspace","category":"Text","tags":["delete","remove","eliminate"],"variants":{"outline":"ea2d","filled":"f7dc"}},"badge-3d":{"name":"badge-3d","category":"Badges","tags":["shape","movie","glasses","film"],"variants":{"outline":"f555","filled":"fe9b"}},"badge-4k":{"name":"badge-4k","category":"Badges","tags":["shape","high","resolution","video","display"],"variants":{"outline":"f556","filled":"fe9a"}},"badge-8k":{"name":"badge-8k","category":"Badges","tags":["shape","high","resolution","video","display"],"variants":{"outline":"f557","filled":"fe99"}},"badge-ad-off":{"name":"badge-ad-off","category":"","tags":[],"variants":{"outline":"fd8f"}},"badge-ad":{"name":"badge-ad","category":"Badges","tags":["shape","marketing","media","promotion","advertising","advertisement"],"variants":{"outline":"f558","filled":"fe98"}},"badge-ar":{"name":"badge-ar","category":"Badges","tags":["shape","agumented","reality","techonoly"],"variants":{"outline":"f559","filled":"fe97"}},"badge-cc":{"name":"badge-cc","category":"Badges","tags":["shape","accessiblity","subtitles","youtube","netflix"],"variants":{"outline":"f55a","filled":"fe96"}},"badge-hd":{"name":"badge-hd","category":"Badges","tags":["shape","video","display","resolution","movie"],"variants":{"outline":"f55b","filled":"fe95"}},"badge-off":{"name":"badge-off","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"f0fb"}},"badge-sd":{"name":"badge-sd","category":"Badges","tags":["shape","card","memory","sim","phone"],"variants":{"outline":"f55c","filled":"fe94"}},"badge-tm":{"name":"badge-tm","category":"Badges","tags":["shape","brand","copyright","logo","product"],"variants":{"outline":"f55d","filled":"fe93"}},"badge-vo":{"name":"badge-vo","category":"Badges","tags":["shape","mic","film","netflix","voice","video"],"variants":{"outline":"f55e","filled":"fe92"}},"badge-vr":{"name":"badge-vr","category":"Badges","tags":["shape","technology","virtual","reality","device"],"variants":{"outline":"f55f","filled":"fe91"}},"badge-wc":{"name":"badge-wc","category":"Badges","tags":["shape","toilet","restroom","male","female"],"variants":{"outline":"f560","filled":"fe90"}},"badge":{"name":"badge","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"efc2","filled":"f667"}},"badges-off":{"name":"badges-off","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"f0fc"}},"badges":{"name":"badges","category":"","tags":["army","badge","military","rank","soldier","war"],"variants":{"outline":"efc3","filled":"f7dd"}},"baguette":{"name":"baguette","category":"Food","tags":["bread","french","breakfast","bakery","loaf"],"variants":{"outline":"f3a5"}},"ball-american-football-off":{"name":"ball-american-football-off","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"f3c3"}},"ball-american-football":{"name":"ball-american-football","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee04"}},"ball-baseball":{"name":"ball-baseball","category":"Sport","tags":["sport","game","competition","pitch"],"variants":{"outline":"efa0"}},"ball-basketball":{"name":"ball-basketball","category":"Sport","tags":["game","round","quarter","basket","nba"],"variants":{"outline":"ec28"}},"ball-bowling":{"name":"ball-bowling","category":"Sport","tags":["round","strike","spare","pin"],"variants":{"outline":"ec29"}},"ball-football-off":{"name":"ball-football-off","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee05"}},"ball-football":{"name":"ball-football","category":"Sport","tags":["sport","game","sportsman","play","match","pitch"],"variants":{"outline":"ee06"}},"ball-tennis":{"name":"ball-tennis","category":"Sport","tags":["game","set","match","court","racket"],"variants":{"outline":"ec2a"}},"ball-volleyball":{"name":"ball-volleyball","category":"Sport","tags":["point","set","match","attacker","ace","setter","serve"],"variants":{"outline":"ec2b"}},"balloon-off":{"name":"balloon-off","category":"","tags":["party","birthday","decoration"],"variants":{"outline":"f0fd"}},"balloon":{"name":"balloon","category":"","tags":["party","birthday","decoration"],"variants":{"outline":"ef3a","filled":"fa84"}},"ballpen-off":{"name":"ballpen-off","category":"Text","tags":["write","school","education","stationery","text"],"variants":{"outline":"f0b1"}},"ballpen":{"name":"ballpen","category":"Text","tags":["write","school","education","stationery","text"],"variants":{"outline":"f06e","filled":"fa85"}},"ban":{"name":"ban","category":"","tags":["no","reject","restriction","prohibited"],"variants":{"outline":"ea2e"}},"bandage-off":{"name":"bandage-off","category":"Health","tags":["patch","wound","cut","pain"],"variants":{"outline":"f3c4"}},"bandage":{"name":"bandage","category":"Health","tags":["patch","wound","cut","pain"],"variants":{"outline":"eb7a","filled":"f7de"}},"barbell-off":{"name":"barbell-off","category":"Sport","tags":["weight","gym","fitness","powerlift"],"variants":{"outline":"f0b2"}},"barbell":{"name":"barbell","category":"Sport","tags":["weight","gym","fitness","powerlift"],"variants":{"outline":"eff0","filled":"fe8f"}},"barcode-off":{"name":"barcode-off","category":"","tags":["product","shop","scan","supermarket"],"variants":{"outline":"f0b3"}},"barcode":{"name":"barcode","category":"","tags":["product","shop","scan","supermarket"],"variants":{"outline":"ebc6"}},"barrel-off":{"name":"barrel-off","category":"","tags":["beer","wine","fuel","tank","cask"],"variants":{"outline":"f0fe"}},"barrel":{"name":"barrel","category":"","tags":["beer","wine","fuel","tank","cask"],"variants":{"outline":"f0b4"}},"barrier-block-off":{"name":"barrier-block-off","category":"","tags":["construction","stop","traffic","barricade","street"],"variants":{"outline":"f0b5"}},"barrier-block":{"name":"barrier-block","category":"","tags":["construction","stop","traffic","barricade","street"],"variants":{"outline":"f00e","filled":"fe8e"}},"baseline-density-large":{"name":"baseline-density-large","category":"Text","tags":["large","sizeable","oversized","big","bulky","massive","huge","gigantic","substantial","enormous"],"variants":{"outline":"f9f0"}},"baseline-density-medium":{"name":"baseline-density-medium","category":"Text","tags":["medium","average","moderate","middle","intermediate","standard","midsize","usual","typical","regular"],"variants":{"outline":"f9f1"}},"baseline-density-small":{"name":"baseline-density-small","category":"Text","tags":["small","tiny","little","miniature","compact","petite","mini","micro","diminutive","wee"],"variants":{"outline":"f9f2"}},"baseline":{"name":"baseline","category":"Text","tags":["align","arrow","bottom","format","vertical"],"variants":{"outline":"f024"}},"basket-bolt":{"name":"basket-bolt","category":"","tags":[],"variants":{"outline":"fb43"}},"basket-cancel":{"name":"basket-cancel","category":"","tags":[],"variants":{"outline":"fb44"}},"basket-check":{"name":"basket-check","category":"","tags":[],"variants":{"outline":"fb45"}},"basket-code":{"name":"basket-code","category":"","tags":[],"variants":{"outline":"fb46"}},"basket-cog":{"name":"basket-cog","category":"","tags":[],"variants":{"outline":"fb47"}},"basket-discount":{"name":"basket-discount","category":"","tags":[],"variants":{"outline":"fb48"}},"basket-dollar":{"name":"basket-dollar","category":"","tags":[],"variants":{"outline":"fb49"}},"basket-down":{"name":"basket-down","category":"","tags":[],"variants":{"outline":"fb4a"}},"basket-exclamation":{"name":"basket-exclamation","category":"","tags":[],"variants":{"outline":"fb4b"}},"basket-heart":{"name":"basket-heart","category":"","tags":[],"variants":{"outline":"fb4c"}},"basket-minus":{"name":"basket-minus","category":"","tags":[],"variants":{"outline":"fb4d"}},"basket-off":{"name":"basket-off","category":"E-commerce","tags":["shop","store","online","shopping"],"variants":{"outline":"f0b6"}},"basket-pause":{"name":"basket-pause","category":"","tags":[],"variants":{"outline":"fb4e"}},"basket-pin":{"name":"basket-pin","category":"","tags":[],"variants":{"outline":"fb4f"}},"basket-plus":{"name":"basket-plus","category":"","tags":[],"variants":{"outline":"fb50"}},"basket-question":{"name":"basket-question","category":"","tags":[],"variants":{"outline":"fb51"}},"basket-search":{"name":"basket-search","category":"","tags":[],"variants":{"outline":"fb52"}},"basket-share":{"name":"basket-share","category":"","tags":[],"variants":{"outline":"fb53"}},"basket-star":{"name":"basket-star","category":"","tags":[],"variants":{"outline":"fb54"}},"basket-up":{"name":"basket-up","category":"","tags":[],"variants":{"outline":"fb55"}},"basket-x":{"name":"basket-x","category":"","tags":[],"variants":{"outline":"fb56"}},"basket":{"name":"basket","category":"E-commerce","tags":["shop","store","online","shopping"],"variants":{"outline":"ebe1","filled":"f7df"}},"bat":{"name":"bat","category":"Animals","tags":["animal","halloween","vampire","scary","blood"],"variants":{"outline":"f284"}},"bath-off":{"name":"bath-off","category":"","tags":["water","clean","hygiene","bathroom","tub"],"variants":{"outline":"f0ff"}},"bath":{"name":"bath","category":"","tags":["water","clean","hygiene","bathroom","tub"],"variants":{"outline":"ef48","filled":"f71d"}},"battery-1":{"name":"battery-1","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea2f","filled":"f71e"}},"battery-2":{"name":"battery-2","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea30","filled":"f71f"}},"battery-3":{"name":"battery-3","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea31","filled":"f720"}},"battery-4":{"name":"battery-4","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea32","filled":"f721"}},"battery-automotive":{"name":"battery-automotive","category":"Vehicles","tags":["vehicle","charge","motor","current","car","electricity","electric","power"],"variants":{"outline":"ee07"}},"battery-charging-2":{"name":"battery-charging-2","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ef3b"}},"battery-charging":{"name":"battery-charging","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ea33"}},"battery-eco":{"name":"battery-eco","category":"Devices","tags":["ecology","charge","energy","power","electricity"],"variants":{"outline":"ef3c"}},"battery-exclamation":{"name":"battery-exclamation","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1d"}},"battery-off":{"name":"battery-off","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ed1c"}},"battery-vertical-1":{"name":"battery-vertical-1","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1c"}},"battery-vertical-2":{"name":"battery-vertical-2","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1b"}},"battery-vertical-3":{"name":"battery-vertical-3","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff1a"}},"battery-vertical-4":{"name":"battery-vertical-4","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff19"}},"battery-vertical-charging-2":{"name":"battery-vertical-charging-2","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ff18"}},"battery-vertical-charging":{"name":"battery-vertical-charging","category":"Devices","tags":["charge","energy","power","electricity"],"variants":{"outline":"ff17"}},"battery-vertical-eco":{"name":"battery-vertical-eco","category":"Devices","tags":["ecology","charge","energy","power","electricity"],"variants":{"outline":"ff16"}},"battery-vertical-exclamation":{"name":"battery-vertical-exclamation","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff15"}},"battery-vertical-off":{"name":"battery-vertical-off","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff14"}},"battery-vertical":{"name":"battery-vertical","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ff13"}},"battery":{"name":"battery","category":"Devices","tags":["energy","power","electricity"],"variants":{"outline":"ea34","filled":"f668"}},"beach-off":{"name":"beach-off","category":"Map","tags":["sand","sun","umbrella","vacation","travel"],"variants":{"outline":"f0b7"}},"beach":{"name":"beach","category":"Map","tags":["sand","sun","umbrella","vacation","travel"],"variants":{"outline":"ef3d"}},"bed-flat":{"name":"bed-flat","category":"","tags":["mattress","sofa","couch","futon","sleeping","restful","horizontal","recline","lying","horizontal-bed"],"variants":{"outline":"fca1","filled":"fe8d"}},"bed-off":{"name":"bed-off","category":"Map","tags":["sleep","night","bedroom","rest"],"variants":{"outline":"f100"}},"bed":{"name":"bed","category":"Map","tags":["furniture","sleeping","comfortable","bedroom","mattress","resting","relax","sleep","futon","cozy"],"variants":{"outline":"eb5c","filled":"f7e0"}},"beer-off":{"name":"beer-off","category":"Food","tags":["alcohol","drink","beverage","bar","pub"],"variants":{"outline":"f101"}},"beer":{"name":"beer","category":"Food","tags":["alcohol","drink","beverage","bar","pub"],"variants":{"outline":"efa1","filled":"f7e1"}},"bell-bolt":{"name":"bell-bolt","category":"System","tags":[],"variants":{"outline":"f812"}},"bell-cancel":{"name":"bell-cancel","category":"System","tags":[],"variants":{"outline":"f813"}},"bell-check":{"name":"bell-check","category":"System","tags":[],"variants":{"outline":"f814"}},"bell-code":{"name":"bell-code","category":"System","tags":[],"variants":{"outline":"f815"}},"bell-cog":{"name":"bell-cog","category":"System","tags":[],"variants":{"outline":"f816"}},"bell-dollar":{"name":"bell-dollar","category":"System","tags":[],"variants":{"outline":"f817"}},"bell-down":{"name":"bell-down","category":"System","tags":[],"variants":{"outline":"f818"}},"bell-exclamation":{"name":"bell-exclamation","category":"System","tags":[],"variants":{"outline":"f819"}},"bell-heart":{"name":"bell-heart","category":"System","tags":[],"variants":{"outline":"f81a"}},"bell-minus":{"name":"bell-minus","category":"System","tags":["notification","alarm","alert","remove","ring"],"variants":{"outline":"ede2","filled":"f722"}},"bell-off":{"name":"bell-off","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ece9"}},"bell-pause":{"name":"bell-pause","category":"System","tags":[],"variants":{"outline":"f81b"}},"bell-pin":{"name":"bell-pin","category":"System","tags":[],"variants":{"outline":"f81c"}},"bell-plus":{"name":"bell-plus","category":"System","tags":["alarm","notification","alert","set"],"variants":{"outline":"ede3","filled":"f723"}},"bell-question":{"name":"bell-question","category":"System","tags":[],"variants":{"outline":"f81d"}},"bell-ringing-2":{"name":"bell-ringing-2","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ede4","filled":"f724"}},"bell-ringing":{"name":"bell-ringing","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ed07","filled":"f725"}},"bell-school":{"name":"bell-school","category":"","tags":["alarm","education","alert","sound","notification","study"],"variants":{"outline":"f05e"}},"bell-search":{"name":"bell-search","category":"System","tags":[],"variants":{"outline":"f81e"}},"bell-share":{"name":"bell-share","category":"System","tags":[],"variants":{"outline":"f81f"}},"bell-star":{"name":"bell-star","category":"System","tags":[],"variants":{"outline":"f820"}},"bell-up":{"name":"bell-up","category":"System","tags":[],"variants":{"outline":"f821"}},"bell-x":{"name":"bell-x","category":"System","tags":["alarm","ring","sound","alert","disabled"],"variants":{"outline":"ede5","filled":"f726"}},"bell-z":{"name":"bell-z","category":"System","tags":["alarm","bell","clock","date","snooze","time"],"variants":{"outline":"eff1","filled":"f727"}},"bell":{"name":"bell","category":"System","tags":["alarm","sound","notification"],"variants":{"outline":"ea35","filled":"f669"}},"beta":{"name":"beta","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f544"}},"bible":{"name":"bible","category":"","tags":["religion","holy","christian","miracle","church"],"variants":{"outline":"efc4"}},"bike-off":{"name":"bike-off","category":"Vehicles","tags":["cycling","bicycle","sport","wheel"],"variants":{"outline":"f0b8"}},"bike":{"name":"bike","category":"Vehicles","tags":["cycling","bicycle","sport","wheel"],"variants":{"outline":"ea36"}},"binary-off":{"name":"binary-off","category":"Computers","tags":["binary"],"variants":{"outline":"f3c5"}},"binary-tree-2":{"name":"binary-tree-2","category":"Computers","tags":["data","diversity","it","math"],"variants":{"outline":"f5d3","filled":"ff65"}},"binary-tree":{"name":"binary-tree","category":"Computers","tags":["data","diversity","it","math"],"variants":{"outline":"f5d4","filled":"ff64"}},"binary":{"name":"binary","category":"Computers","tags":["binary"],"variants":{"outline":"ee08"}},"binoculars":{"name":"binoculars","category":"","tags":["birds","explorer","field glasses","magnifying eye glasses","observe","view","watch"],"variants":{"outline":"fefe","filled":"ff0b"}},"biohazard-off":{"name":"biohazard-off","category":"Symbols","tags":["danger","radioactive","toxic","microbe","virus","biotoxin"],"variants":{"outline":"f0b9"}},"biohazard":{"name":"biohazard","category":"Symbols","tags":["danger","radioactive","toxic","microbe","virus","biotoxin"],"variants":{"outline":"ecb8","filled":"fe8c"}},"blade":{"name":"blade","category":"","tags":["razor","beard","barber","cut"],"variants":{"outline":"f4bd","filled":"f7e2"}},"bleach-chlorine":{"name":"bleach-chlorine","category":"Laundry","tags":["clothing","washing","chemical","laundry","detergent","clean"],"variants":{"outline":"f2f0"}},"bleach-no-chlorine":{"name":"bleach-no-chlorine","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f1"}},"bleach-off":{"name":"bleach-off","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f2"}},"bleach":{"name":"bleach","category":"Laundry","tags":["clothing","washing","chemical","laundry"],"variants":{"outline":"f2f3"}},"blend-mode":{"name":"blend-mode","category":"Design","tags":[],"variants":{"outline":"feb0"}},"blender":{"name":"blender","category":"","tags":["mixer","kitchen","appliance","blend","food","smoothie","processing","mixing","grind","blending"],"variants":{"outline":"fca2"}},"blob":{"name":"blob","category":"","tags":[],"variants":{"outline":"feaf","filled":"feb1"}},"blockquote":{"name":"blockquote","category":"Text","tags":["citation","quotation","saying","text","section","style","styling","css"],"variants":{"outline":"ee09"}},"bluetooth-connected":{"name":"bluetooth-connected","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"ecea"}},"bluetooth-off":{"name":"bluetooth-off","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"eceb"}},"bluetooth-x":{"name":"bluetooth-x","category":"Devices","tags":["multimedia","technology","disabled","connection","communication"],"variants":{"outline":"f081"}},"bluetooth":{"name":"bluetooth","category":"Devices","tags":["wireless","connection","connect"],"variants":{"outline":"ea37"}},"blur-off":{"name":"blur-off","category":"Design","tags":["edit","photo","photography","tool"],"variants":{"outline":"f3c6"}},"blur":{"name":"blur","category":"Design","tags":["edit","photo","photography","tool"],"variants":{"outline":"ef8c"}},"bmp":{"name":"bmp","category":"Extensions","tags":["format","filetype","file","document"],"variants":{"outline":"f3a6"}},"body-scan":{"name":"body-scan","category":"System","tags":["medical","health","biometric","wellness","check-up","diagnostic","physical","anatomy","examination","body-health"],"variants":{"outline":"fca3"}},"bold-off":{"name":"bold-off","category":"Text","tags":["font","style","boldface"],"variants":{"outline":"f0ba"}},"bold":{"name":"bold","category":"Text","tags":["font","style","boldface"],"variants":{"outline":"eb7b"}},"bolt-off":{"name":"bolt-off","category":"","tags":["energy","power","electricity","storm"],"variants":{"outline":"ecec"}},"bolt":{"name":"bolt","category":"","tags":["energy","power","electricity","storm"],"variants":{"outline":"ea38"}},"bomb":{"name":"bomb","category":"","tags":["explosion","weapon","military","war"],"variants":{"outline":"f59c","filled":"fa86"}},"bone-off":{"name":"bone-off","category":"Food","tags":["skeleton","human","dog","body"],"variants":{"outline":"f0bb"}},"bone":{"name":"bone","category":"Food","tags":["skeleton","human","dog","body"],"variants":{"outline":"edb8","filled":"fe8b"}},"bong-off":{"name":"bong-off","category":"","tags":["smoke","smoking","cannabis","marijuana","drugs"],"variants":{"outline":"f3c7"}},"bong":{"name":"bong","category":"","tags":["smoke","smoking","cannabis","marijuana","drugs"],"variants":{"outline":"f3a7"}},"book-2":{"name":"book-2","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"efc5"}},"book-download":{"name":"book-download","category":"Document","tags":["education","e-book","digital"],"variants":{"outline":"f070"}},"book-off":{"name":"book-off","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"f0bc"}},"book-upload":{"name":"book-upload","category":"Document","tags":["e-book","e-learning","education","reading"],"variants":{"outline":"f071"}},"book":{"name":"book","category":"Document","tags":["read","dictionary","magazine","library","booklet","novel"],"variants":{"outline":"ea39","filled":"fa87"}},"bookmark-ai":{"name":"bookmark-ai","category":"","tags":[],"variants":{"outline":"fc8a"}},"bookmark-edit":{"name":"bookmark-edit","category":"Document","tags":[],"variants":{"outline":"fa5e"}},"bookmark-minus":{"name":"bookmark-minus","category":"Document","tags":[],"variants":{"outline":"fa5f"}},"bookmark-off":{"name":"bookmark-off","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"eced"}},"bookmark-plus":{"name":"bookmark-plus","category":"Document","tags":[],"variants":{"outline":"fa60"}},"bookmark-question":{"name":"bookmark-question","category":"Document","tags":[],"variants":{"outline":"fa61"}},"bookmark":{"name":"bookmark","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"ea3a","filled":"fa88"}},"bookmarks-off":{"name":"bookmarks-off","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"f0bd"}},"bookmarks":{"name":"bookmarks","category":"Document","tags":["read","clip","marker","tag"],"variants":{"outline":"ed08","filled":"fb1f"}},"books-off":{"name":"books-off","category":"Document","tags":["education","learning","reading","school","library"],"variants":{"outline":"f0be"}},"books":{"name":"books","category":"Document","tags":["education","learning","reading","school","library"],"variants":{"outline":"eff2"}},"boom":{"name":"boom","category":"","tags":[],"variants":{"outline":"fdbe","filled":"fe8a"}},"border-all":{"name":"border-all","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3b"}},"border-bottom-plus":{"name":"border-bottom-plus","category":"","tags":[],"variants":{"outline":"fdbd"}},"border-bottom":{"name":"border-bottom","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3c"}},"border-corner-ios":{"name":"border-corner-ios","category":"","tags":[],"variants":{"outline":"fd98"}},"border-corner-pill":{"name":"border-corner-pill","category":"Design","tags":[],"variants":{"outline":"fd62"}},"border-corner-rounded":{"name":"border-corner-rounded","category":"Design","tags":[],"variants":{"outline":"fd63"}},"border-corner-square":{"name":"border-corner-square","category":"Design","tags":[],"variants":{"outline":"fd64"}},"border-corners":{"name":"border-corners","category":"Design","tags":[],"variants":{"outline":"f7a0"}},"border-horizontal":{"name":"border-horizontal","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3d"}},"border-inner":{"name":"border-inner","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3e"}},"border-left-plus":{"name":"border-left-plus","category":"","tags":[],"variants":{"outline":"fdbc"}},"border-left":{"name":"border-left","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea3f"}},"border-none":{"name":"border-none","category":"Design","tags":["table"],"variants":{"outline":"ea40"}},"border-outer":{"name":"border-outer","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea41"}},"border-radius":{"name":"border-radius","category":"Design","tags":["corner","rounded","line"],"variants":{"outline":"eb7c"}},"border-right-plus":{"name":"border-right-plus","category":"","tags":[],"variants":{"outline":"fdbb"}},"border-right":{"name":"border-right","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea42"}},"border-sides":{"name":"border-sides","category":"Design","tags":[],"variants":{"outline":"f7a1"}},"border-style-2":{"name":"border-style-2","category":"Design","tags":["google","excel","sheets"],"variants":{"outline":"ef22"}},"border-style":{"name":"border-style","category":"Design","tags":["google","excel","sheets"],"variants":{"outline":"ee0a"}},"border-top-plus":{"name":"border-top-plus","category":"","tags":[],"variants":{"outline":"fdba"}},"border-top":{"name":"border-top","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea43"}},"border-vertical":{"name":"border-vertical","category":"Design","tags":["table","side","line"],"variants":{"outline":"ea44"}},"bottle-off":{"name":"bottle-off","category":"Food","tags":["water","drink","beer","energy","wine"],"variants":{"outline":"f3c8"}},"bottle":{"name":"bottle","category":"Food","tags":["water","drink","beer","energy","wine"],"variants":{"outline":"ef0b","filled":"fa89"}},"bounce-left":{"name":"bounce-left","category":"Design","tags":["ball","west","motion","jump"],"variants":{"outline":"f59d","filled":"fb20"}},"bounce-right":{"name":"bounce-right","category":"Design","tags":["ball","east","motion","jump"],"variants":{"outline":"f59e","filled":"fb21"}},"bow":{"name":"bow","category":"Sport","tags":["arrow","archer","hunt","hunter"],"variants":{"outline":"f096","filled":"fe89"}},"bowl-chopsticks":{"name":"bowl-chopsticks","category":"","tags":[],"variants":{"outline":"fd90","filled":"fe88"}},"bowl-spoon":{"name":"bowl-spoon","category":"","tags":[],"variants":{"outline":"fd91","filled":"fe87"}},"bowl":{"name":"bowl","category":"Food","tags":["food","soup","kitchen","vessel"],"variants":{"outline":"f4fa","filled":"fb22"}},"box-align-bottom-left":{"name":"box-align-bottom-left","category":"Design","tags":["cube","side","down","south-west"],"variants":{"outline":"f2ce","filled":"fa8b"}},"box-align-bottom-right":{"name":"box-align-bottom-right","category":"Design","tags":["cube","side","down","south-east"],"variants":{"outline":"f2cf","filled":"fa8c"}},"box-align-bottom":{"name":"box-align-bottom","category":"Design","tags":["rectangle","side","down","south"],"variants":{"outline":"f2a8","filled":"fa8a"}},"box-align-left":{"name":"box-align-left","category":"Design","tags":["rectangle side","west"],"variants":{"outline":"f2a9","filled":"fa8d"}},"box-align-right":{"name":"box-align-right","category":"Design","tags":["rectangle","side","east"],"variants":{"outline":"f2aa","filled":"fa8e"}},"box-align-top-left":{"name":"box-align-top-left","category":"Design","tags":["cube","side","up","north-west"],"variants":{"outline":"f2d0","filled":"fa90"}},"box-align-top-right":{"name":"box-align-top-right","category":"Design","tags":["cube","side","up","north-east"],"variants":{"outline":"f2d1","filled":"fa91"}},"box-align-top":{"name":"box-align-top","category":"Design","tags":["rectangle","side","up","north"],"variants":{"outline":"f2ab","filled":"fa8f"}},"box-margin":{"name":"box-margin","category":"Design","tags":["css","cascading","style","section","space","text","content","outside","container"],"variants":{"outline":"ee0b"}},"box-model-2-off":{"name":"box-model-2-off","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"f3c9"}},"box-model-2":{"name":"box-model-2","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"ef23"}},"box-model-off":{"name":"box-model-off","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"f3ca"}},"box-model":{"name":"box-model","category":"Design","tags":["css","cascading","style","section","element","square","website","container"],"variants":{"outline":"ee0c"}},"box-multiple-0":{"name":"box-multiple-0","category":"Numbers","tags":["css","cascading","style","sheet","background","section","zero","website","layer"],"variants":{"outline":"ee0d"}},"box-multiple-1":{"name":"box-multiple-1","category":"Numbers","tags":["css","cascading","style","sheet","background","section","one","website","layer"],"variants":{"outline":"ee0e"}},"box-multiple-2":{"name":"box-multiple-2","category":"Numbers","tags":["css","cascading","style","sheet","background","section","two","website","layer"],"variants":{"outline":"ee0f"}},"box-multiple-3":{"name":"box-multiple-3","category":"Numbers","tags":["css","cascading","style","sheet","background","section","three","website","layer"],"variants":{"outline":"ee10"}},"box-multiple-4":{"name":"box-multiple-4","category":"Numbers","tags":["css","cascading","style","sheet","background","section","four","website","layer"],"variants":{"outline":"ee11"}},"box-multiple-5":{"name":"box-multiple-5","category":"Numbers","tags":["css","cascading","style","sheet","background","section","five","website","layer"],"variants":{"outline":"ee12"}},"box-multiple-6":{"name":"box-multiple-6","category":"Numbers","tags":["css","cascading","style","sheet","background","section","six","website","layer"],"variants":{"outline":"ee13"}},"box-multiple-7":{"name":"box-multiple-7","category":"Numbers","tags":["css","cascading","style","sheet","background","section","seven","website","layer"],"variants":{"outline":"ee14"}},"box-multiple-8":{"name":"box-multiple-8","category":"Numbers","tags":["css","cascading","style","sheet","background","section","eight","website","layer"],"variants":{"outline":"ee15"}},"box-multiple-9":{"name":"box-multiple-9","category":"Numbers","tags":["css","cascading","style","sheet","background","section","nine","website","layer"],"variants":{"outline":"ee16"}},"box-multiple":{"name":"box-multiple","category":"","tags":["css","cascading","style","sheet","background","section","website","layer"],"variants":{"outline":"ee17"}},"box-off":{"name":"box-off","category":"","tags":["cube","app","application","package","container"],"variants":{"outline":"f102"}},"box-padding":{"name":"box-padding","category":"Design","tags":["css","cascading","style","section","space","text","content","website","container","inside"],"variants":{"outline":"ee18"}},"box":{"name":"box","category":"","tags":["cube","app","application","package","container"],"variants":{"outline":"ea45"}},"braces-off":{"name":"braces-off","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"f0bf"}},"braces":{"name":"braces","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"ebcc"}},"brackets-angle-off":{"name":"brackets-angle-off","category":"","tags":[],"variants":{"outline":"fcb1"}},"brackets-angle":{"name":"brackets-angle","category":"","tags":[],"variants":{"outline":"fcb2"}},"brackets-contain-end":{"name":"brackets-contain-end","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e3"}},"brackets-contain-start":{"name":"brackets-contain-start","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e4"}},"brackets-contain":{"name":"brackets-contain","category":"Math","tags":["word","regex","find"],"variants":{"outline":"f1e5"}},"brackets-off":{"name":"brackets-off","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"f0c0"}},"brackets":{"name":"brackets","category":"Math","tags":["punctuation","additional","information"],"variants":{"outline":"ebcd"}},"braille":{"name":"braille","category":"","tags":["blind","alphabet","disability","letters","read"],"variants":{"outline":"f545"}},"brain":{"name":"brain","category":"","tags":["mind","human","iq","inteligence","organ"],"variants":{"outline":"f59f"}},"brand-4chan":{"name":"brand-4chan","category":"Brand","tags":["bulletin","board","music","photography","image","share"],"variants":{"outline":"f494"}},"brand-abstract":{"name":"brand-abstract","category":"Brand","tags":["design","software","web","ux"],"variants":{"outline":"f495"}},"brand-adobe-after-effect":{"name":"brand-adobe-after-effect","category":"Brand","tags":[],"variants":{"outline":"ff2a"}},"brand-adobe-illustrator":{"name":"brand-adobe-illustrator","category":"Brand","tags":[],"variants":{"outline":"ff29"}},"brand-adobe-indesign":{"name":"brand-adobe-indesign","category":"Brand","tags":[],"variants":{"outline":"ff28"}},"brand-adobe-photoshop":{"name":"brand-adobe-photoshop","category":"Brand","tags":[],"variants":{"outline":"ff27"}},"brand-adobe-premier":{"name":"brand-adobe-premier","category":"Brand","tags":[],"variants":{"outline":"ff26"}},"brand-adobe-xd":{"name":"brand-adobe-xd","category":"Brand","tags":[],"variants":{"outline":"ff25"}},"brand-adobe":{"name":"brand-adobe","category":"Brand","tags":["photoshop","illustrator","indesign"],"variants":{"outline":"f0dc"}},"brand-adonis-js":{"name":"brand-adonis-js","category":"Brand","tags":["framework","web","app","typescript"],"variants":{"outline":"f496"}},"brand-airbnb":{"name":"brand-airbnb","category":"Brand","tags":["flat","apartment","holiday","vacation","city","break","book"],"variants":{"outline":"ed68"}},"brand-airtable":{"name":"brand-airtable","category":"Brand","tags":["creation of","sharing","database","interface"],"variants":{"outline":"ef6a"}},"brand-algolia":{"name":"brand-algolia","category":"Brand","tags":["web","browser","software","efficient","ai"],"variants":{"outline":"f390"}},"brand-alipay":{"name":"brand-alipay","category":"Brand","tags":["pay","china","electronically","alibaba"],"variants":{"outline":"f7a2"}},"brand-alpine-js":{"name":"brand-alpine-js","category":"Brand","tags":["javascript","programming","coding"],"variants":{"outline":"f324"}},"brand-amazon":{"name":"brand-amazon","category":"Brand","tags":["shopping","online","media","shop","ecommerce"],"variants":{"outline":"f230"}},"brand-amd":{"name":"brand-amd","category":"Brand","tags":["electronics","computer","components","processors"],"variants":{"outline":"f653"}},"brand-amigo":{"name":"brand-amigo","category":"Brand","tags":[],"variants":{"outline":"f5f9"}},"brand-among-us":{"name":"brand-among-us","category":"Brand","tags":["game","crewmate","impostor"],"variants":{"outline":"f205"}},"brand-android":{"name":"brand-android","category":"Brand","tags":["os","company","system","interface","software","logo"],"variants":{"outline":"ec16"}},"brand-angular":{"name":"brand-angular","category":"Brand","tags":["programming","coding","typescript"],"variants":{"outline":"ef6b"}},"brand-ansible":{"name":"brand-ansible","category":"Brand","tags":[],"variants":{"outline":"fa70"}},"brand-ao3":{"name":"brand-ao3","category":"Brand","tags":["open","source","make","webstie","fanfiction"],"variants":{"outline":"f5e8"}},"brand-appgallery":{"name":"brand-appgallery","category":"Brand","tags":["games","apps","online","store","video"],"variants":{"outline":"f231"}},"brand-apple-arcade":{"name":"brand-apple-arcade","category":"Brand","tags":["technology","video","game","service","macos","device","play","online"],"variants":{"outline":"ed69"}},"brand-apple-news":{"name":"brand-apple-news","category":"Brand","tags":[],"variants":{"outline":"ff24"}},"brand-apple-podcast":{"name":"brand-apple-podcast","category":"Brand","tags":["audio","software","music","ios","tvos"],"variants":{"outline":"f1e6"}},"brand-apple":{"name":"brand-apple","category":"Brand","tags":["os","company","system","interface","software","devices","logo"],"variants":{"outline":"ec17","filled":"fd74"}},"brand-appstore":{"name":"brand-appstore","category":"Brand","tags":["shop","online","application","logo"],"variants":{"outline":"ed24"}},"brand-arc":{"name":"brand-arc","category":"Brand","tags":[],"variants":{"outline":"feae"}},"brand-asana":{"name":"brand-asana","category":"Brand","tags":["task","management","project management","manage","collaborate","collaboration","team","teamwork","technology"],"variants":{"outline":"edc5"}},"brand-astro":{"name":"brand-astro","category":"Brand","tags":[],"variants":{"outline":"fdb9"}},"brand-auth0":{"name":"brand-auth0","category":"Brand","tags":[],"variants":{"outline":"fcb3"}},"brand-aws":{"name":"brand-aws","category":"Brand","tags":[],"variants":{"outline":"fa4c"}},"brand-azure":{"name":"brand-azure","category":"Brand","tags":["microsoft","azure","cloud","computing","technology","services","software","platform","it","digital"],"variants":{"outline":"fa4d"}},"brand-backbone":{"name":"brand-backbone","category":"Brand","tags":["javascript","programmers","creation","websites"],"variants":{"outline":"f325"}},"brand-badoo":{"name":"brand-badoo","category":"Brand","tags":["website","communication","chat","social media"],"variants":{"outline":"f206"}},"brand-baidu":{"name":"brand-baidu","category":"Brand","tags":["china","ai","network","company"],"variants":{"outline":"f5e9"}},"brand-bandcamp":{"name":"brand-bandcamp","category":"Brand","tags":["music","website","music company","audio"],"variants":{"outline":"f207"}},"brand-bandlab":{"name":"brand-bandlab","category":"Brand","tags":["make","music","online","cloud","webstie"],"variants":{"outline":"f5fa"}},"brand-beats":{"name":"brand-beats","category":"Brand","tags":["music","audio","headphones","audio equipment"],"variants":{"outline":"f208"}},"brand-behance":{"name":"brand-behance","category":"Brand","tags":["logo","website","adobe","project","views","marks","platform","designer"],"variants":{"outline":"ec6e"}},"brand-bilibili":{"name":"brand-bilibili","category":"Brand","tags":["china","platform","streaming","video"],"variants":{"outline":"f6d2"}},"brand-binance":{"name":"brand-binance","category":"Brand","tags":["website","crypto","cryptocurrency","exchange"],"variants":{"outline":"f5a0"}},"brand-bing":{"name":"brand-bing","category":"Brand","tags":["search","result","find","engine","internet","microsoft","web","technology"],"variants":{"outline":"edc6"}},"brand-bitbucket":{"name":"brand-bitbucket","category":"Brand","tags":["version","control","repository","hosting","atlassian","source","code","development","git","technology"],"variants":{"outline":"edc7"}},"brand-blackberry":{"name":"brand-blackberry","category":"Brand","tags":["phone","mobile","system","operating","os","electronics"],"variants":{"outline":"f568"}},"brand-blender":{"name":"brand-blender","category":"Brand","tags":["software","graphic","3d","animation"],"variants":{"outline":"f326"}},"brand-blogger":{"name":"brand-blogger","category":"Brand","tags":["media","blogging","internet","social","site"],"variants":{"outline":"f35a"}},"brand-bluesky":{"name":"brand-bluesky","category":"Brand","tags":[],"variants":{"outline":"fd75"}},"brand-booking":{"name":"brand-booking","category":"Brand","tags":["flat","apartment","holiday","vacation","city","break","book","rent"],"variants":{"outline":"edc8"}},"brand-bootstrap":{"name":"brand-bootstrap","category":"Brand","tags":["programming","coding","HTML","hardware","javascript","js"],"variants":{"outline":"ef3e"}},"brand-bulma":{"name":"brand-bulma","category":"Brand","tags":["programming","coding","html","css"],"variants":{"outline":"f327"}},"brand-bumble":{"name":"brand-bumble","category":"Brand","tags":["app","dating","social","media","communication"],"variants":{"outline":"f5fb"}},"brand-bunpo":{"name":"brand-bunpo","category":"Brand","tags":["learn","japanese","app","grammatic"],"variants":{"outline":"f4cf"}},"brand-c-sharp":{"name":"brand-c-sharp","category":"Brand","tags":["coding","programming","files","language"],"variants":{"outline":"f003"}},"brand-cake":{"name":"brand-cake","category":"Brand","tags":[],"variants":{"outline":"f7a3"}},"brand-cakephp":{"name":"brand-cakephp","category":"Brand","tags":["framework","make","app","web","php"],"variants":{"outline":"f7af"}},"brand-campaignmonitor":{"name":"brand-campaignmonitor","category":"Brand","tags":["technology","e-mail","site","cm","group"],"variants":{"outline":"f328"}},"brand-carbon":{"name":"brand-carbon","category":"Brand","tags":[],"variants":{"outline":"f348"}},"brand-cashapp":{"name":"brand-cashapp","category":"Brand","tags":["payment","finance","mobile","app","money","transfer"],"variants":{"outline":"f391"}},"brand-chrome":{"name":"brand-chrome","category":"Brand","tags":["browser","internet","web","logo"],"variants":{"outline":"ec18"}},"brand-cinema-4d":{"name":"brand-cinema-4d","category":"Brand","tags":[],"variants":{"outline":"fa71"}},"brand-citymapper":{"name":"brand-citymapper","category":"Brand","tags":["app","transport","public","software"],"variants":{"outline":"f5fc"}},"brand-cloudflare":{"name":"brand-cloudflare","category":"Brand","tags":["cloudflare","web","security","content","delivery","ddos","protection","network","internet","performance","firewall","cdn","website"],"variants":{"outline":"fa4e"}},"brand-codecov":{"name":"brand-codecov","category":"Brand","tags":["coding","analysis","archive","merge"],"variants":{"outline":"f329"}},"brand-codepen":{"name":"brand-codepen","category":"Brand","tags":["logo","community","internet","codes","programing","programmer","source","website","platform","designer"],"variants":{"outline":"ec6f"}},"brand-codesandbox":{"name":"brand-codesandbox","category":"Brand","tags":["online","code","editor","prototyping","prototype","web","app","programming","integrated","development","environment","technology"],"variants":{"outline":"ed6a"}},"brand-cohost":{"name":"brand-cohost","category":"Brand","tags":["web","website","app","social","nodes","network","community","communication","user","post","images","photos","comment","feedback"],"variants":{"outline":"f5d5"}},"brand-coinbase":{"name":"brand-coinbase","category":"Brand","tags":["cryptocurrencies","bitcoin","ethereum","traded company"],"variants":{"outline":"f209"}},"brand-comedy-central":{"name":"brand-comedy-central","category":"Brand","tags":["tv","serial","films","stand-up","skits"],"variants":{"outline":"f217"}},"brand-coreos":{"name":"brand-coreos","category":"Brand","tags":["operating","system","linux","programmers"],"variants":{"outline":"f5fd"}},"brand-couchdb":{"name":"brand-couchdb","category":"Brand","tags":["document","engine","database","json"],"variants":{"outline":"f60f"}},"brand-couchsurfing":{"name":"brand-couchsurfing","category":"Brand","tags":["app","website","accommodation","lodging"],"variants":{"outline":"f392"}},"brand-cpp":{"name":"brand-cpp","category":"Brand","tags":["code","programming","language","coding"],"variants":{"outline":"f5fe"}},"brand-craft":{"name":"brand-craft","category":"Brand","tags":[],"variants":{"outline":"fa72"}},"brand-crunchbase":{"name":"brand-crunchbase","category":"Brand","tags":[],"variants":{"outline":"f7e3"}},"brand-css3":{"name":"brand-css3","category":"Brand","tags":["cascading","style","sheet","programming","development","web","website","technology"],"variants":{"outline":"ed6b"}},"brand-ctemplar":{"name":"brand-ctemplar","category":"Brand","tags":["e-mail","file","sharing","encryption","app","mobile"],"variants":{"outline":"f4d0"}},"brand-cucumber":{"name":"brand-cucumber","category":"Brand","tags":["software","tool","gherkin","programming","ruby","javascript"],"variants":{"outline":"ef6c"}},"brand-cupra":{"name":"brand-cupra","category":"Brand","tags":["car","seat","sport","formentor","ateca","leon"],"variants":{"outline":"f4d1"}},"brand-cypress":{"name":"brand-cypress","category":"Brand","tags":["test","automation","user","interface","javascript"],"variants":{"outline":"f333"}},"brand-d3":{"name":"brand-d3","category":"Brand","tags":["data","charts","javascript","js"],"variants":{"outline":"f24e"}},"brand-databricks":{"name":"brand-databricks","category":"Brand","tags":["databricks","data","analytics","big","science","machine","learning","platform","engineering","processing","ai"],"variants":{"outline":"fc41"}},"brand-days-counter":{"name":"brand-days-counter","category":"Brand","tags":["app","mobile","highlights","days","birthday"],"variants":{"outline":"f4d2"}},"brand-dcos":{"name":"brand-dcos","category":"Brand","tags":["os","operating","system","cloud","services","networking"],"variants":{"outline":"f32a"}},"brand-debian":{"name":"brand-debian","category":"Brand","tags":["operating system","linux","computer","gnu"],"variants":{"outline":"ef57"}},"brand-deezer":{"name":"brand-deezer","category":"Brand","tags":["music","media","sound","singer"],"variants":{"outline":"f78b"}},"brand-deliveroo":{"name":"brand-deliveroo","category":"Brand","tags":["food","online","delivery","supplier"],"variants":{"outline":"f4d3"}},"brand-deno":{"name":"brand-deno","category":"Brand","tags":["software","javascript","programming","typescript"],"variants":{"outline":"f24f"}},"brand-denodo":{"name":"brand-denodo","category":"Brand","tags":["data","managment","cloud","delivery"],"variants":{"outline":"f610"}},"brand-deviantart":{"name":"brand-deviantart","category":"Brand","tags":["logo","community","internet","works","designer","project","presenting","artist","discussion","website","platform"],"variants":{"outline":"ecfb"}},"brand-digg":{"name":"brand-digg","category":"Brand","tags":[],"variants":{"outline":"fa73"}},"brand-dingtalk":{"name":"brand-dingtalk","category":"Brand","tags":["platform","communication","company","mobile"],"variants":{"outline":"f5ea"}},"brand-discord":{"name":"brand-discord","category":"Brand","tags":["app","application","logo","communication","talks","gamers","freeware","platform"],"variants":{"outline":"ece3","filled":"f7e4"}},"brand-disney":{"name":"brand-disney","category":"Brand","tags":["films","castle","serials","magic","fantasia"],"variants":{"outline":"f20a"}},"brand-disqus":{"name":"brand-disqus","category":"Brand","tags":["comment","blog","service","website","online","platform","social","networking","technology"],"variants":{"outline":"edc9"}},"brand-django":{"name":"brand-django","category":"Brand","tags":["creation","web","application","framework"],"variants":{"outline":"f349"}},"brand-docker":{"name":"brand-docker","category":"Brand","tags":["app","development","hub","platform","software","developer","programming","programmer","virtualization","technology"],"variants":{"outline":"edca"}},"brand-doctrine":{"name":"brand-doctrine","category":"Brand","tags":["database","programming","library","php"],"variants":{"outline":"ef6d"}},"brand-dolby-digital":{"name":"brand-dolby-digital","category":"Brand","tags":["cinema","technology","sound","home"],"variants":{"outline":"f4d4"}},"brand-douban":{"name":"brand-douban","category":"Brand","tags":["china","social","network","film","books","music"],"variants":{"outline":"f5ff"}},"brand-dribbble":{"name":"brand-dribbble","category":"Brand","tags":["logo","website","community","project","platform","self-promotion","designer","portfolio"],"variants":{"outline":"ec19","filled":"f7e5"}},"brand-drops":{"name":"brand-drops","category":"Brand","tags":["education","learning","language","word","game","design"],"variants":{"outline":"f4d5"}},"brand-drupal":{"name":"brand-drupal","category":"Brand","tags":["software","content","management","creation","application"],"variants":{"outline":"f393"}},"brand-edge":{"name":"brand-edge","category":"Brand","tags":["browser","internet","web","logo","explorer"],"variants":{"outline":"ecfc"}},"brand-elastic":{"name":"brand-elastic","category":"Brand","tags":["software","analysis","data","search"],"variants":{"outline":"f611"}},"brand-electronic-arts":{"name":"brand-electronic-arts","category":"Brand","tags":[],"variants":{"outline":"fa74"}},"brand-ember":{"name":"brand-ember","category":"Brand","tags":["library","javascript","web","app","framework"],"variants":{"outline":"f497"}},"brand-envato":{"name":"brand-envato","category":"Brand","tags":["community","creative","resources","tools"],"variants":{"outline":"f394"}},"brand-etsy":{"name":"brand-etsy","category":"Brand","tags":["online","marketplace","make","sell","buy"],"variants":{"outline":"f654"}},"brand-evernote":{"name":"brand-evernote","category":"Brand","tags":["app","organisation","notes","storage","archiving"],"variants":{"outline":"f600"}},"brand-facebook":{"name":"brand-facebook","category":"Brand","tags":["logo","app","application","community","social","communication","website","user","post","images","photos","comment","feedback","fb"],"variants":{"outline":"ec1a","filled":"f7e6"}},"brand-feedly":{"name":"brand-feedly","category":"Brand","tags":["feedly","rss","reader","news","aggregator","content","discovery","information","consumption","feed","newsfeed","app"],"variants":{"outline":"fa75"}},"brand-figma":{"name":"brand-figma","category":"Brand","tags":["logo","editor","graphic","image","implement","prototyping"],"variants":{"outline":"ec93"}},"brand-filezilla":{"name":"brand-filezilla","category":"Brand","tags":[],"variants":{"outline":"fa76"}},"brand-finder":{"name":"brand-finder","category":"Brand","tags":["software","files","manager","macos","osx","programming"],"variants":{"outline":"f218"}},"brand-firebase":{"name":"brand-firebase","category":"Brand","tags":["development","coding","programming","mobile apps"],"variants":{"outline":"ef6e"}},"brand-firefox":{"name":"brand-firefox","category":"Brand","tags":["browser","internet","web","logo"],"variants":{"outline":"ecfd"}},"brand-fiverr":{"name":"brand-fiverr","category":"Brand","tags":["marketplace","creative","proffesional","services"],"variants":{"outline":"f7a4"}},"brand-flickr":{"name":"brand-flickr","category":"Brand","tags":["logo","website","house","facilitate","sharing","digital","photos","images"],"variants":{"outline":"ecfe"}},"brand-flightradar24":{"name":"brand-flightradar24","category":"Brand","tags":["plane","route","fly","height","speed","statistisc"],"variants":{"outline":"f4d6"}},"brand-flipboard":{"name":"brand-flipboard","category":"Brand","tags":["news","newspapper","social","media"],"variants":{"outline":"f20b"}},"brand-flutter":{"name":"brand-flutter","category":"Brand","tags":["tools","programmer","creation","aplication"],"variants":{"outline":"f395"}},"brand-fortnite":{"name":"brand-fortnite","category":"Brand","tags":["games","online","battle","multiplayer","gun","weapon","building"],"variants":{"outline":"f260"}},"brand-foursquare":{"name":"brand-foursquare","category":"Brand","tags":["logo","website","community","social","network"],"variants":{"outline":"ecff"}},"brand-framer-motion":{"name":"brand-framer-motion","category":"Brand","tags":["library","builder","website","developers"],"variants":{"outline":"f78c"}},"brand-framer":{"name":"brand-framer","category":"Brand","tags":["logo","application","app","prototyping","prototype","animations"],"variants":{"outline":"ec1b"}},"brand-funimation":{"name":"brand-funimation","category":"Brand","tags":["dubbing","japan","anime","stream","website"],"variants":{"outline":"f655"}},"brand-gatsby":{"name":"brand-gatsby","category":"Brand","tags":["framework","webpage","creation","software"],"variants":{"outline":"f396"}},"brand-git":{"name":"brand-git","category":"Brand","tags":["programming","coding","software","perl","boume shell"],"variants":{"outline":"ef6f"}},"brand-github-copilot":{"name":"brand-github-copilot","category":"Brand","tags":["ai","artificial","intelligence","autocomplete","coding"],"variants":{"outline":"f4a8"}},"brand-github":{"name":"brand-github","category":"Brand","tags":["logo","website","hosting","project","programming","software","development"],"variants":{"outline":"ec1c","filled":"f7e7"}},"brand-gitlab":{"name":"brand-gitlab","category":"Brand","tags":["logo","website","software","code","programming","programmers"],"variants":{"outline":"ec1d"}},"brand-gmail":{"name":"brand-gmail","category":"Brand","tags":["google","message","mail","communication"],"variants":{"outline":"efa2"}},"brand-golang":{"name":"brand-golang","category":"Brand","tags":["language","programming","app","write","c++","java"],"variants":{"outline":"f78d"}},"brand-google-analytics":{"name":"brand-google-analytics","category":"Brand","tags":["advertising","track","website","traffic","e-commerce","online","technology"],"variants":{"outline":"edcb"}},"brand-google-big-query":{"name":"brand-google-big-query","category":"Brand","tags":["data","analysis","cloud","petabytes","sql"],"variants":{"outline":"f612"}},"brand-google-drive":{"name":"brand-google-drive","category":"Brand","tags":["logo","cloud","disc","documents","sheet","presentation","file","edit"],"variants":{"outline":"ec1e"}},"brand-google-fit":{"name":"brand-google-fit","category":"Brand","tags":["health","tracking","platform","software"],"variants":{"outline":"f297"}},"brand-google-home":{"name":"brand-google-home","category":"Brand","tags":["app","control","devices","speaker"],"variants":{"outline":"f601"}},"brand-google-maps":{"name":"brand-google-maps","category":"Brand","tags":[],"variants":{"outline":"fa4f"}},"brand-google-one":{"name":"brand-google-one","category":"Brand","tags":["data","software","storage","cloud"],"variants":{"outline":"f232"}},"brand-google-photos":{"name":"brand-google-photos","category":"Brand","tags":["gallery","videos","photography","website"],"variants":{"outline":"f20c"}},"brand-google-play":{"name":"brand-google-play","category":"Brand","tags":["logo","application","app","shop","store","online"],"variants":{"outline":"ed25"}},"brand-google-podcasts":{"name":"brand-google-podcasts","category":"Brand","tags":["app","android","ios","discover","listen"],"variants":{"outline":"f656"}},"brand-google":{"name":"brand-google","category":"Brand","tags":["logo","enterprise","browser","internet","web","discover"],"variants":{"outline":"ec1f","filled":"fd1a"}},"brand-grammarly":{"name":"brand-grammarly","category":"Brand","tags":["text","editor","detects","mistakes","grammar"],"variants":{"outline":"f32b"}},"brand-graphql":{"name":"brand-graphql","category":"Brand","tags":["software","communication","server"],"variants":{"outline":"f32c"}},"brand-gravatar":{"name":"brand-gravatar","category":"Brand","tags":["avatar","image","face","blog","comment","represent","online","technology"],"variants":{"outline":"edcc"}},"brand-grindr":{"name":"brand-grindr","category":"Brand","tags":["app","communication","dating","gay","lgbt"],"variants":{"outline":"f20d"}},"brand-guardian":{"name":"brand-guardian","category":"Brand","tags":["news","log","british","article","blog"],"variants":{"outline":"f4fb"}},"brand-gumroad":{"name":"brand-gumroad","category":"Brand","tags":["e-commerce","platform","sell","direct"],"variants":{"outline":"f5d6"}},"brand-hackerrank":{"name":"brand-hackerrank","category":"Brand","tags":[],"variants":{"outline":"ff23"}},"brand-hbo":{"name":"brand-hbo","category":"Brand","tags":["tv","channels","film","movie","serials"],"variants":{"outline":"f657"}},"brand-headlessui":{"name":"brand-headlessui","category":"Brand","tags":["tailwind","css","js","javascript"],"variants":{"outline":"f32d"}},"brand-hexo":{"name":"brand-hexo","category":"Brand","tags":[],"variants":{"outline":"fa50"}},"brand-hipchat":{"name":"brand-hipchat","category":"Brand","tags":["chat","communicate","communication","talk","discuss","app","collaborate","collaboration","technology"],"variants":{"outline":"edcd"}},"brand-html5":{"name":"brand-html5","category":"Brand","tags":["programming","development","web","website","technology","markup","language"],"variants":{"outline":"ed6c"}},"brand-inertia":{"name":"brand-inertia","category":"Brand","tags":["create","app","online","javascript"],"variants":{"outline":"f34a"}},"brand-instagram":{"name":"brand-instagram","category":"Brand","tags":["logo","app","application","images","photos","videos","post","stories","online","community"],"variants":{"outline":"ec20"}},"brand-intercom":{"name":"brand-intercom","category":"Brand","tags":["chat","communcation","software"],"variants":{"outline":"f1cf"}},"brand-itch":{"name":"brand-itch","category":"Brand","tags":[],"variants":{"outline":"fa22"}},"brand-javascript":{"name":"brand-javascript","category":"Brand","tags":["js","language","programming"],"variants":{"outline":"ef0c"}},"brand-juejin":{"name":"brand-juejin","category":"Brand","tags":["development","new","technologies","developers"],"variants":{"outline":"f7b0"}},"brand-kako-talk":{"name":"brand-kako-talk","category":"Brand","tags":["kakao-talk","messaging","communication","chat","social","app","talk","branding","kakao","conversation"],"variants":{"outline":"fd2d"}},"brand-kbin":{"name":"brand-kbin","category":"Brand","tags":[],"variants":{"outline":"fad0"}},"brand-kick":{"name":"brand-kick","category":"Brand","tags":[],"variants":{"outline":"fa23"}},"brand-kickstarter":{"name":"brand-kickstarter","category":"Brand","tags":["crowdfunding","platform","project","creative","idea","business","launch","technology"],"variants":{"outline":"edce"}},"brand-kotlin":{"name":"brand-kotlin","category":"Brand","tags":["programming","language","programmer","development","developer","technology"],"variants":{"outline":"ed6d"}},"brand-laravel":{"name":"brand-laravel","category":"Brand","tags":["framework","software","php","modular","application","building","system"],"variants":{"outline":"f34b"}},"brand-lastfm":{"name":"brand-lastfm","category":"Brand","tags":["radio station","website","music","media player"],"variants":{"outline":"f001"}},"brand-leetcode":{"name":"brand-leetcode","category":"Brand","tags":[],"variants":{"outline":"fa51"}},"brand-letterboxd":{"name":"brand-letterboxd","category":"Brand","tags":[],"variants":{"outline":"fa24"}},"brand-line":{"name":"brand-line","category":"Brand","tags":[],"variants":{"outline":"f7e8"}},"brand-linkedin":{"name":"brand-linkedin","category":"Brand","tags":["logo","website","corporation","work","business","internet"],"variants":{"outline":"ec8c"}},"brand-linktree":{"name":"brand-linktree","category":"Brand","tags":["hyperlinks","social media","freemium service","website"],"variants":{"outline":"f1e7"}},"brand-linqpad":{"name":"brand-linqpad","category":"Brand","tags":["framework","programmers","database"],"variants":{"outline":"f562"}},"brand-livewire":{"name":"brand-livewire","category":"Brand","tags":[],"variants":{"outline":"fd76"}},"brand-loom":{"name":"brand-loom","category":"Brand","tags":["video","messages","osx","record","screen","camera"],"variants":{"outline":"ef70"}},"brand-mailgun":{"name":"brand-mailgun","category":"Brand","tags":["delivery","service","tracking","pickup"],"variants":{"outline":"f32e"}},"brand-mantine":{"name":"brand-mantine","category":"Brand","tags":["creation","web","application","development"],"variants":{"outline":"f32f"}},"brand-mastercard":{"name":"brand-mastercard","category":"Brand","tags":["payment","money","debit","finance"],"variants":{"outline":"ef49"}},"brand-mastodon":{"name":"brand-mastodon","category":"Brand","tags":["web","app","social","nodes","network"],"variants":{"outline":"f250"}},"brand-matrix":{"name":"brand-matrix","category":"Brand","tags":["non","profit","communication","ip","devices"],"variants":{"outline":"f5eb"}},"brand-mcdonalds":{"name":"brand-mcdonalds","category":"Brand","tags":["food","cheeseburger","hamburger","fries","fastfood"],"variants":{"outline":"f251"}},"brand-medium":{"name":"brand-medium","category":"Brand","tags":["logo","website","brand","wordmark","design"],"variants":{"outline":"ec70"}},"brand-meetup":{"name":"brand-meetup","category":"Brand","tags":[],"variants":{"outline":"fc6a"}},"brand-mercedes":{"name":"brand-mercedes","category":"Brand","tags":["car","racing","f1","bus","van"],"variants":{"outline":"f072"}},"brand-messenger":{"name":"brand-messenger","category":"Brand","tags":["logo","app","application","communication","text","messages","communicator","photos","images","videos","giphy"],"variants":{"outline":"ec71"}},"brand-meta":{"name":"brand-meta","category":"Brand","tags":["social media","facebook","fb","instagram","messegner","giphy"],"variants":{"outline":"efb0"}},"brand-metabrainz":{"name":"brand-metabrainz","category":"Brand","tags":["website","database","open-source","musicbrainz","listenbrainz","bookbrainz","critiquebrainz"],"variants":{"outline":"ff12"}},"brand-minecraft":{"name":"brand-minecraft","category":"Brand","tags":[],"variants":{"outline":"faef"}},"brand-miniprogram":{"name":"brand-miniprogram","category":"Brand","tags":[],"variants":{"outline":"f602"}},"brand-mixpanel":{"name":"brand-mixpanel","category":"Brand","tags":["analytics","buisness","software","application"],"variants":{"outline":"f397"}},"brand-monday":{"name":"brand-monday","category":"Brand","tags":["software","application development","cloud base platform"],"variants":{"outline":"f219"}},"brand-mongodb":{"name":"brand-mongodb","category":"Brand","tags":["database","c++","system","open","programmers"],"variants":{"outline":"f613"}},"brand-my-oppo":{"name":"brand-my-oppo","category":"Brand","tags":["mobile","app","services","membership"],"variants":{"outline":"f4d7"}},"brand-mysql":{"name":"brand-mysql","category":"Brand","tags":["opensource","database","system","web","app"],"variants":{"outline":"f614"}},"brand-national-geographic":{"name":"brand-national-geographic","category":"Brand","tags":["institution","scientific","educational","nonprofit"],"variants":{"outline":"f603"}},"brand-nem":{"name":"brand-nem","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a1"}},"brand-netbeans":{"name":"brand-netbeans","category":"Brand","tags":["software","programming","tools","java","mobile devices"],"variants":{"outline":"ef71"}},"brand-netease-music":{"name":"brand-netease-music","category":"Brand","tags":["cloud","sound","app","stream","china"],"variants":{"outline":"f604"}},"brand-netflix":{"name":"brand-netflix","category":"Brand","tags":["series","tv","episode","movie","film","media","watch","app","technology"],"variants":{"outline":"edcf"}},"brand-nexo":{"name":"brand-nexo","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a2"}},"brand-nextcloud":{"name":"brand-nextcloud","category":"Brand","tags":["software","technology","file","hosting","php","javascript"],"variants":{"outline":"f4d8"}},"brand-nextjs":{"name":"brand-nextjs","category":"Brand","tags":["website creation","web platform","software","web application functions"],"variants":{"outline":"f0dd"}},"brand-nodejs":{"name":"brand-nodejs","category":"Brand","tags":[],"variants":{"outline":"fae0"}},"brand-nord-vpn":{"name":"brand-nord-vpn","category":"Brand","tags":["protects","device","software"],"variants":{"outline":"f37f"}},"brand-notion":{"name":"brand-notion","category":"Brand","tags":["software","note taking","project management","database"],"variants":{"outline":"ef7b"}},"brand-npm":{"name":"brand-npm","category":"Brand","tags":["package","manager","node.js","javascript"],"variants":{"outline":"f569"}},"brand-nuxt":{"name":"brand-nuxt","category":"Brand","tags":["software","app development","library","javascript","js"],"variants":{"outline":"f0de"}},"brand-nytimes":{"name":"brand-nytimes","category":"Brand","tags":["magazines","news","newspapper","website"],"variants":{"outline":"ef8d"}},"brand-oauth":{"name":"brand-oauth","category":"Brand","tags":[],"variants":{"outline":"fa52"}},"brand-office":{"name":"brand-office","category":"Brand","tags":["text","editor","software","word","excel"],"variants":{"outline":"f398"}},"brand-ok-ru":{"name":"brand-ok-ru","category":"Brand","tags":["socialmedia","message","posts"],"variants":{"outline":"f399"}},"brand-onedrive":{"name":"brand-onedrive","category":"Brand","tags":["virtual","disk","microsoft","cloud"],"variants":{"outline":"f5d7"}},"brand-onlyfans":{"name":"brand-onlyfans","category":"Brand","tags":["website","platform","photos","videos","stream","pay"],"variants":{"outline":"f605"}},"brand-open-source":{"name":"brand-open-source","category":"Brand","tags":["software","code","developer","public","licence","technology"],"variants":{"outline":"edd0"}},"brand-openai":{"name":"brand-openai","category":"Brand","tags":["nonprofit","artificial","intelligence","website"],"variants":{"outline":"f78e"}},"brand-openvpn":{"name":"brand-openvpn","category":"Brand","tags":["software","creating","secure","connection"],"variants":{"outline":"f39a"}},"brand-opera":{"name":"brand-opera","category":"Brand","tags":["logo","browser","internet","free","program"],"variants":{"outline":"ec21"}},"brand-pagekit":{"name":"brand-pagekit","category":"Brand","tags":["content","management","system","website","component","modular","technology"],"variants":{"outline":"edd1"}},"brand-parsinta":{"name":"brand-parsinta","category":"Brand","tags":[],"variants":{"outline":"fc42"}},"brand-patreon":{"name":"brand-patreon","category":"Brand","tags":["artist","software","creator","patron","art","subscription","income","earn"],"variants":{"outline":"edd2","filled":"fcff"}},"brand-paypal":{"name":"brand-paypal","category":"Brand","tags":["logo","enterprise","service","payment","internet","businessman","consumer"],"variants":{"outline":"ec22","filled":"f7e9"}},"brand-paypay":{"name":"brand-paypay","category":"Brand","tags":["japan","electronic","payment","services","mobile"],"variants":{"outline":"f5ec"}},"brand-peanut":{"name":"brand-peanut","category":"Brand","tags":["social","app","mobile","women"],"variants":{"outline":"f39b"}},"brand-pepsi":{"name":"brand-pepsi","category":"Brand","tags":["food","cola","coke","drink","bottle","carbonated"],"variants":{"outline":"f261"}},"brand-php":{"name":"brand-php","category":"Brand","tags":["programming","coding","script","format","file"],"variants":{"outline":"ef72"}},"brand-picsart":{"name":"brand-picsart","category":"Brand","tags":["photo","photography","software","video","editing"],"variants":{"outline":"f4d9"}},"brand-pinterest":{"name":"brand-pinterest","category":"Brand","tags":["logo","website","images","materials"],"variants":{"outline":"ec8d"}},"brand-planetscale":{"name":"brand-planetscale","category":"Brand","tags":["mysql","database","developers"],"variants":{"outline":"f78f"}},"brand-pnpm":{"name":"brand-pnpm","category":"Brand","tags":[],"variants":{"outline":"fd77"}},"brand-pocket":{"name":"brand-pocket","category":"Brand","tags":["logo","software","application","app","mobile","device","gathering","storage"],"variants":{"outline":"ed00"}},"brand-polymer":{"name":"brand-polymer","category":"Brand","tags":[],"variants":{"outline":"f498"}},"brand-powershell":{"name":"brand-powershell","category":"Brand","tags":["microsoft","command","interpreter","software","opensource"],"variants":{"outline":"f5ed"}},"brand-printables":{"name":"brand-printables","category":"Brand","tags":[],"variants":{"outline":"fd1b"}},"brand-prisma":{"name":"brand-prisma","category":"Brand","tags":["software","open","source","tools","developer","platform"],"variants":{"outline":"f499"}},"brand-producthunt":{"name":"brand-producthunt","category":"Brand","tags":["technology","product","share","discover","new","novelty","web","geek"],"variants":{"outline":"edd3"}},"brand-pushbullet":{"name":"brand-pushbullet","category":"Brand","tags":["data","transfer","tool","software"],"variants":{"outline":"f330"}},"brand-pushover":{"name":"brand-pushover","category":"Brand","tags":["notifications","push","cloud based","mobile","app"],"variants":{"outline":"f20e"}},"brand-python":{"name":"brand-python","category":"Brand","tags":["logo","language","programming","source"],"variants":{"outline":"ed01"}},"brand-qq":{"name":"brand-qq","category":"Brand","tags":["china","communicator","internet"],"variants":{"outline":"f606"}},"brand-radix-ui":{"name":"brand-radix-ui","category":"Brand","tags":["opensource","library","web","application","high","quality"],"variants":{"outline":"f790"}},"brand-react-native":{"name":"brand-react-native","category":"Brand","tags":["programming","tools","app","javascript","js"],"variants":{"outline":"ef73"}},"brand-react":{"name":"brand-react","category":"Brand","tags":["library","javascript","creation","interface","software"],"variants":{"outline":"f34c"}},"brand-reason":{"name":"brand-reason","category":"Brand","tags":[],"variants":{"outline":"f49a"}},"brand-reddit":{"name":"brand-reddit","category":"Brand","tags":["logo","website","information","link","internet"],"variants":{"outline":"ec8e"}},"brand-redhat":{"name":"brand-redhat","category":"Brand","tags":["software","entrepreneurship","creation"],"variants":{"outline":"f331"}},"brand-redux":{"name":"brand-redux","category":"Brand","tags":["library","javascript","menagment","centralization","application","status"],"variants":{"outline":"f3a8"}},"brand-revolut":{"name":"brand-revolut","category":"Brand","tags":["bank","money","finance","change","currency"],"variants":{"outline":"f4da"}},"brand-rumble":{"name":"brand-rumble","category":"Brand","tags":[],"variants":{"outline":"fad1"}},"brand-rust":{"name":"brand-rust","category":"Brand","tags":[],"variants":{"outline":"fa53"}},"brand-safari":{"name":"brand-safari","category":"Brand","tags":["logo","browser","internet","iphone","ipad","MacBook","compass","apple","discover"],"variants":{"outline":"ec23"}},"brand-samsungpass":{"name":"brand-samsungpass","category":"Brand","tags":["management","storage","personal","information","id","password"],"variants":{"outline":"f4db"}},"brand-sass":{"name":"brand-sass","category":"Brand","tags":["technology","preprocessor","script","language","programming","css","syntax","compile"],"variants":{"outline":"edd4"}},"brand-sentry":{"name":"brand-sentry","category":"Brand","tags":["technology","application","monitoring","error","tracking","software","cloud","development","app"],"variants":{"outline":"edd5"}},"brand-sharik":{"name":"brand-sharik","category":"Brand","tags":["file","sharing","wifi","mobile","hotspot"],"variants":{"outline":"f4dc"}},"brand-shazam":{"name":"brand-shazam","category":"Brand","tags":["app","technology","device","music","sound","play","discover","artist","recognize"],"variants":{"outline":"edd6"}},"brand-shopee":{"name":"brand-shopee","category":"Brand","tags":["shopping","online","media","shop","ecommerce"],"variants":{"outline":"f252"}},"brand-sketch":{"name":"brand-sketch","category":"Brand","tags":["logo","editor","edit","graphic","apple","commercial"],"variants":{"outline":"ec24"}},"brand-skype":{"name":"brand-skype","category":"Brand","tags":["logo","application","app","communication","talks","call","video","internet","camera"],"variants":{"outline":"ed02"}},"brand-slack":{"name":"brand-slack","category":"Brand","tags":["logo","free","internet","service","stuff","electron","app","application","communicator","textual","audio","multimedia"],"variants":{"outline":"ec72"}},"brand-snapchat":{"name":"brand-snapchat","category":"Brand","tags":["logo","app","application","photos","sending","images","mobile","video"],"variants":{"outline":"ec25"}},"brand-snapseed":{"name":"brand-snapseed","category":"Brand","tags":["edit","photo","image","editor","google"],"variants":{"outline":"f253"}},"brand-snowflake":{"name":"brand-snowflake","category":"Brand","tags":["data","cloud","platform","website"],"variants":{"outline":"f615"}},"brand-socket-io":{"name":"brand-socket-io","category":"Brand","tags":["library","javascript","web","app","communication"],"variants":{"outline":"f49b"}},"brand-solidjs":{"name":"brand-solidjs","category":"Brand","tags":["library","framework","developers","programmers","javascript"],"variants":{"outline":"f5ee"}},"brand-soundcloud":{"name":"brand-soundcloud","category":"Brand","tags":["technology","audio","distribution","platform","music","upload","promote","streaming"],"variants":{"outline":"ed6e"}},"brand-spacehey":{"name":"brand-spacehey","category":"Brand","tags":["internet","network","social","website"],"variants":{"outline":"f4fc"}},"brand-speedtest":{"name":"brand-speedtest","category":"Brand","tags":[],"variants":{"outline":"fa77"}},"brand-spotify":{"name":"brand-spotify","category":"Brand","tags":["logo","app","application","platform","music","listening","streaming","podcast"],"variants":{"outline":"ed03","filled":"fe86"}},"brand-stackoverflow":{"name":"brand-stackoverflow","category":"Brand","tags":["social","media","programming","website"],"variants":{"outline":"ef58"}},"brand-stackshare":{"name":"brand-stackshare","category":"Brand","tags":["website","developers","tech","opensource"],"variants":{"outline":"f607"}},"brand-steam":{"name":"brand-steam","category":"Brand","tags":["technology","video","game","digital","distribution","software","player","pc"],"variants":{"outline":"ed6f"}},"brand-stocktwits":{"name":"brand-stocktwits","category":"Brand","tags":[],"variants":{"outline":"fd78"}},"brand-storj":{"name":"brand-storj","category":"Brand","tags":[],"variants":{"outline":"fa54"}},"brand-storybook":{"name":"brand-storybook","category":"Brand","tags":["tool","creation","interface","application"],"variants":{"outline":"f332"}},"brand-storytel":{"name":"brand-storytel","category":"Brand","tags":["audiobook","stream","phone","tablet","digital","subscription","service"],"variants":{"outline":"f608"}},"brand-strava":{"name":"brand-strava","category":"Brand","tags":["run","ride","hike","activity","gps","sport","app"],"variants":{"outline":"f254"}},"brand-stripe":{"name":"brand-stripe","category":"Brand","tags":["technology","payment","processing","money","subscription","finance","financial","software","e-commerce"],"variants":{"outline":"edd7"}},"brand-sublime-text":{"name":"brand-sublime-text","category":"Brand","tags":["software","text","editing","programming"],"variants":{"outline":"ef74"}},"brand-sugarizer":{"name":"brand-sugarizer","category":"Brand","tags":["learning","platform","webstie","child"],"variants":{"outline":"f7a5"}},"brand-supabase":{"name":"brand-supabase","category":"Brand","tags":["opensource","database","software","storage"],"variants":{"outline":"f6d3"}},"brand-superhuman":{"name":"brand-superhuman","category":"Brand","tags":["software","email","productivity","tools"],"variants":{"outline":"f50c"}},"brand-supernova":{"name":"brand-supernova","category":"Brand","tags":["editor","developer","tools","technology","design"],"variants":{"outline":"f49c"}},"brand-surfshark":{"name":"brand-surfshark","category":"Brand","tags":["vpn","security","ip","network","private"],"variants":{"outline":"f255"}},"brand-svelte":{"name":"brand-svelte","category":"Brand","tags":["programming","coding","interface","web app"],"variants":{"outline":"f0df"}},"brand-swift":{"name":"brand-swift","category":"Brand","tags":[],"variants":{"outline":"fa55"}},"brand-symfony":{"name":"brand-symfony","category":"Brand","tags":["framework","php","software","build","web","application"],"variants":{"outline":"f616"}},"brand-tabler":{"name":"brand-tabler","category":"Brand","tags":["logo","website","dashboard","download","open-source","ui"],"variants":{"outline":"ec8f"}},"brand-tailwind":{"name":"brand-tailwind","category":"Brand","tags":["logo","firm","website"],"variants":{"outline":"eca1"}},"brand-taobao":{"name":"brand-taobao","category":"Brand","tags":["china","platform","shopping","online"],"variants":{"outline":"f5ef"}},"brand-teams":{"name":"brand-teams","category":"Brand","tags":["microsoft","technology"],"variants":{"outline":"fadf"}},"brand-ted":{"name":"brand-ted","category":"Brand","tags":["nonprofit","website","scientific","conferences","organised"],"variants":{"outline":"f658"}},"brand-telegram":{"name":"brand-telegram","category":"Brand","tags":["logo","app","application","communicator","internet","cloud","messages","text","images","photos","videos","record","file","send"],"variants":{"outline":"ec26"}},"brand-terraform":{"name":"brand-terraform","category":"Brand","tags":[],"variants":{"outline":"fa56"}},"brand-tether":{"name":"brand-tether","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a3"}},"brand-thingiverse":{"name":"brand-thingiverse","category":"Brand","tags":[],"variants":{"outline":"fd1c"}},"brand-threads":{"name":"brand-threads","category":"Brand","tags":[],"variants":{"outline":"fb02"}},"brand-threejs":{"name":"brand-threejs","category":"Brand","tags":["javascript","3d","library","interface","software","make","animation"],"variants":{"outline":"f5f0"}},"brand-tidal":{"name":"brand-tidal","category":"Brand","tags":["technology","subscription","music","podcast","video","streaming","playlist","party","track","song"],"variants":{"outline":"ed70"}},"brand-tiktok":{"name":"brand-tiktok","category":"Brand","tags":["logo","app","application","mobile","video","music"],"variants":{"outline":"ec73","filled":"f7ea"}},"brand-tinder":{"name":"brand-tinder","category":"Brand","tags":["date","dating","app","love","affection","affair","couple","technology","networking","swipe","match"],"variants":{"outline":"ed71"}},"brand-topbuzz":{"name":"brand-topbuzz","category":"Brand","tags":["video","gif","articles","news"],"variants":{"outline":"f50d"}},"brand-torchain":{"name":"brand-torchain","category":"Brand","tags":["coin","crypto","cryptocurrency","digital"],"variants":{"outline":"f5a4"}},"brand-toyota":{"name":"brand-toyota","category":"Brand","tags":["car","transport","transportation"],"variants":{"outline":"f262"}},"brand-trello":{"name":"brand-trello","category":"Brand","tags":["visual","tool","board","kanban"],"variants":{"outline":"f39d"}},"brand-tripadvisor":{"name":"brand-tripadvisor","category":"Brand","tags":["travel","trip","tourism","website"],"variants":{"outline":"f002"}},"brand-tumblr":{"name":"brand-tumblr","category":"Brand","tags":["logo","website","platform","blog","community"],"variants":{"outline":"ed04"}},"brand-twilio":{"name":"brand-twilio","category":"Brand","tags":["communication","answering","calls","messages"],"variants":{"outline":"f617"}},"brand-twitch":{"name":"brand-twitch","category":"Brand","tags":["logo","platform","streaming","streamers","videos","films","chat","subs"],"variants":{"outline":"ed05"}},"brand-twitter":{"name":"brand-twitter","category":"Brand","tags":["logo","app","application","community","social","communication","website","user","post","images","photos","comment","feedback"],"variants":{"outline":"ec27","filled":"f7eb"}},"brand-typescript":{"name":"brand-typescript","category":"Brand","tags":["language","programmers","opensource","javascript"],"variants":{"outline":"f5f1"}},"brand-uber":{"name":"brand-uber","category":"Brand","tags":["taxi","transport","car","food"],"variants":{"outline":"ef75"}},"brand-ubuntu":{"name":"brand-ubuntu","category":"Brand","tags":["os","operating","system","linux","gnu"],"variants":{"outline":"ef59"}},"brand-unity":{"name":"brand-unity","category":"Brand","tags":["engine","creation","3d","2d"],"variants":{"outline":"f49d"}},"brand-unsplash":{"name":"brand-unsplash","category":"Brand","tags":["picture","photo","photography","search","image","stock"],"variants":{"outline":"edd8"}},"brand-upwork":{"name":"brand-upwork","category":"Brand","tags":["freelancer","software","finance"],"variants":{"outline":"f39e"}},"brand-valorant":{"name":"brand-valorant","category":"Brand","tags":["game","fps","videogame","shooter"],"variants":{"outline":"f39f"}},"brand-vercel":{"name":"brand-vercel","category":"Brand","tags":["develop","preview","programmers","build","publish"],"variants":{"outline":"ef24"}},"brand-vimeo":{"name":"brand-vimeo","category":"Brand","tags":["logo","website","sharing","watching","video","users"],"variants":{"outline":"ed06"}},"brand-vinted":{"name":"brand-vinted","category":"Brand","tags":["website","clothes","trading","exchange","sale","shopping"],"variants":{"outline":"f20f"}},"brand-visa":{"name":"brand-visa","category":"Brand","tags":["payment","card","method","pay"],"variants":{"outline":"f380"}},"brand-visual-studio":{"name":"brand-visual-studio","category":"Brand","tags":["software","microsoft","programming","developers","coding"],"variants":{"outline":"ef76"}},"brand-vite":{"name":"brand-vite","category":"Brand","tags":["software","building","tool","programming","web","projects"],"variants":{"outline":"f5f2"}},"brand-vivaldi":{"name":"brand-vivaldi","category":"Brand","tags":["browser","internet","web","free","program"],"variants":{"outline":"f210"}},"brand-vk":{"name":"brand-vk","category":"Brand","tags":["technology","social","media","networking","service","russian"],"variants":{"outline":"ed72"}},"brand-vlc":{"name":"brand-vlc","category":"Brand","tags":[],"variants":{"outline":"fa78"}},"brand-volkswagen":{"name":"brand-volkswagen","category":"Brand","tags":["car","vehicle","transportation","van","traveling"],"variants":{"outline":"f50e"}},"brand-vsco":{"name":"brand-vsco","category":"Brand","tags":["photography","image","application"],"variants":{"outline":"f334"}},"brand-vscode":{"name":"brand-vscode","category":"Brand","tags":["code","editor","software"],"variants":{"outline":"f3a0"}},"brand-vue":{"name":"brand-vue","category":"Brand","tags":["programming","coding","javascript","document","software"],"variants":{"outline":"f0e0"}},"brand-walmart":{"name":"brand-walmart","category":"Brand","tags":["shop","supermarket","food","drinking","groceries","shopping"],"variants":{"outline":"f211"}},"brand-waze":{"name":"brand-waze","category":"Brand","tags":["software","navigation","satellite","mobile","phone"],"variants":{"outline":"f5d8"}},"brand-webflow":{"name":"brand-webflow","category":"Brand","tags":["web","website","creation"],"variants":{"outline":"f2d2"}},"brand-wechat":{"name":"brand-wechat","category":"Brand","tags":["china","communicator","social","media","software"],"variants":{"outline":"f5f3"}},"brand-weibo":{"name":"brand-weibo","category":"Brand","tags":["china","share","messages","internet","service"],"variants":{"outline":"f609"}},"brand-whatsapp":{"name":"brand-whatsapp","category":"Brand","tags":["logo","app","application","communication","text","messages","communicator","photos","images","videos","giphy"],"variants":{"outline":"ec74"}},"brand-wikipedia":{"name":"brand-wikipedia","category":"Brand","tags":[],"variants":{"outline":"fa79"}},"brand-windows":{"name":"brand-windows","category":"Brand","tags":["logo","system","os","computer","microsoft"],"variants":{"outline":"ecd8"}},"brand-windy":{"name":"brand-windy","category":"Brand","tags":["weather","sun","cold","hot","rain","forecast"],"variants":{"outline":"f4dd"}},"brand-wish":{"name":"brand-wish","category":"Brand","tags":["shopping","online","tools","gadgets","toys"],"variants":{"outline":"f212"}},"brand-wix":{"name":"brand-wix","category":"Brand","tags":["logo","maker","web","website"],"variants":{"outline":"f3a1"}},"brand-wordpress":{"name":"brand-wordpress","category":"Brand","tags":["logotype","web","website","glyph","social"],"variants":{"outline":"f2d3"}},"brand-x":{"name":"brand-x","category":"Brand","tags":["twitter"],"variants":{"outline":"fc0f","filled":"fc21"}},"brand-xamarin":{"name":"brand-xamarin","category":"Brand","tags":[],"variants":{"outline":"fa7a"}},"brand-xbox":{"name":"brand-xbox","category":"Brand","tags":["game","console","videogame","controller"],"variants":{"outline":"f298"}},"brand-xdeep":{"name":"brand-xdeep","category":"Brand","tags":[],"variants":{"outline":"fc10"}},"brand-xing":{"name":"brand-xing","category":"Brand","tags":["web","media","network","site","social"],"variants":{"outline":"f21a"}},"brand-yahoo":{"name":"brand-yahoo","category":"Brand","tags":["web","services","technology","inbox","mail","news","search"],"variants":{"outline":"ed73"}},"brand-yandex":{"name":"brand-yandex","category":"Brand","tags":[],"variants":{"outline":"fae1"}},"brand-yarn":{"name":"brand-yarn","category":"Brand","tags":[],"variants":{"outline":"fd79"}},"brand-yatse":{"name":"brand-yatse","category":"Brand","tags":["multimedia","technology","pilot","software","android"],"variants":{"outline":"f213"}},"brand-ycombinator":{"name":"brand-ycombinator","category":"Brand","tags":["startup","accelerator","seed","money","launch","company","business","invest","funding"],"variants":{"outline":"edd9"}},"brand-youtube-kids":{"name":"brand-youtube-kids","category":"Brand","tags":["video","program","young","children","maker","stories","youtuber"],"variants":{"outline":"f214"}},"brand-youtube":{"name":"brand-youtube","category":"Brand","tags":["logo","platform","channel","film","video","youtuber","maker","comments","stream","streamer"],"variants":{"outline":"ec90","filled":"fc22"}},"brand-zalando":{"name":"brand-zalando","category":"Brand","tags":["footwear","shoes","clotches","app","online","shop"],"variants":{"outline":"f49e"}},"brand-zapier":{"name":"brand-zapier","category":"Brand","tags":["automated","create","app","buissnes"],"variants":{"outline":"f49f"}},"brand-zeit":{"name":"brand-zeit","category":"Brand","tags":["consulting","software"],"variants":{"outline":"f335"}},"brand-zhihu":{"name":"brand-zhihu","category":"Brand","tags":["forum","make","question","answers","website"],"variants":{"outline":"f60a"}},"brand-zoom":{"name":"brand-zoom","category":"Brand","tags":["program","video","chat","meetings","online"],"variants":{"outline":"f215"}},"brand-zulip":{"name":"brand-zulip","category":"Brand","tags":["chat","software","phyton","javascript"],"variants":{"outline":"f4de"}},"brand-zwift":{"name":"brand-zwift","category":"Brand","tags":["technology","bike","sport","movement","game"],"variants":{"outline":"f216"}},"bread-off":{"name":"bread-off","category":"Food","tags":["food","breakfast","sandwich","toast","baking"],"variants":{"outline":"f3cb"}},"bread":{"name":"bread","category":"Food","tags":["food","breakfast","sandwich","toast","baking"],"variants":{"outline":"efa3","filled":"fe85"}},"briefcase-2":{"name":"briefcase-2","category":"","tags":["bag","baggage","folder","carrier","documents","suitcase","job","work","luggage"],"variants":{"outline":"fb03","filled":"fe84"}},"briefcase-off":{"name":"briefcase-off","category":"","tags":["bag","baggage","folder","carrier","documents"],"variants":{"outline":"f3cc"}},"briefcase":{"name":"briefcase","category":"","tags":["bag","baggage","folder","carrier","documents","suitcase","job","work","luggage"],"variants":{"outline":"ea46","filled":"fd00"}},"brightness-2":{"name":"brightness-2","category":"Photography","tags":["light","screen","level","daytime","sun"],"variants":{"outline":"ee19"}},"brightness-auto":{"name":"brightness-auto","category":"","tags":[],"variants":{"outline":"fd99","filled":"fe83"}},"brightness-down":{"name":"brightness-down","category":"Photography","tags":["dark","darker","screen"],"variants":{"outline":"eb7d","filled":"fb23"}},"brightness-half":{"name":"brightness-half","category":"Photography","tags":["light","screen","level","daytime","sun"],"variants":{"outline":"ee1a"}},"brightness-off":{"name":"brightness-off","category":"Photography","tags":["light","dark","screen"],"variants":{"outline":"f3cd"}},"brightness-up":{"name":"brightness-up","category":"Photography","tags":["light","screen"],"variants":{"outline":"eb7e","filled":"fb24"}},"brightness":{"name":"brightness","category":"Photography","tags":["light","dark","screen"],"variants":{"outline":"eb7f","filled":"fe82"}},"broadcast-off":{"name":"broadcast-off","category":"Devices","tags":["communication","tv","signal","media","sound","connection","network"],"variants":{"outline":"f1e8"}},"broadcast":{"name":"broadcast","category":"Devices","tags":["communication","tv","signal","media","sound","connection","network"],"variants":{"outline":"f1e9"}},"browser-check":{"name":"browser-check","category":"Devices","tags":["internet","web","display","done","tick"],"variants":{"outline":"efd6"}},"browser-off":{"name":"browser-off","category":"Devices","tags":["internet","web","display"],"variants":{"outline":"f0c1"}},"browser-plus":{"name":"browser-plus","category":"Devices","tags":["internet","web","display","new","add"],"variants":{"outline":"efd7"}},"browser-x":{"name":"browser-x","category":"Devices","tags":["internet","web","display","close"],"variants":{"outline":"efd8"}},"browser":{"name":"browser","category":"Devices","tags":["internet","web","display"],"variants":{"outline":"ebb7"}},"brush-off":{"name":"brush-off","category":"Design","tags":["paint","art","picture","paintbrush","painter","theme"],"variants":{"outline":"f0c2"}},"brush":{"name":"brush","category":"Design","tags":["paint","art","picture","paintbrush","painter","theme"],"variants":{"outline":"ebb8"}},"bubble-minus":{"name":"bubble-minus","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febe"}},"bubble-plus":{"name":"bubble-plus","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febd"}},"bubble-tea-2":{"name":"bubble-tea-2","category":"","tags":[],"variants":{"outline":"ff52"}},"bubble-tea":{"name":"bubble-tea","category":"","tags":[],"variants":{"outline":"ff51"}},"bubble-text":{"name":"bubble-text","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febc"}},"bubble-x":{"name":"bubble-x","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"febb"}},"bubble":{"name":"bubble","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq","message","text"],"variants":{"outline":"feba","filled":"fec3"}},"bucket-droplet":{"name":"bucket-droplet","category":"Design","tags":["water","liquid","drop","tool","fill"],"variants":{"outline":"f56a"}},"bucket-off":{"name":"bucket-off","category":"Design","tags":["collection","container","water","liquid"],"variants":{"outline":"f103"}},"bucket":{"name":"bucket","category":"Design","tags":["collection","container","water","liquid"],"variants":{"outline":"ea47"}},"bug-off":{"name":"bug-off","category":"Development","tags":["germ","insect","error","nature"],"variants":{"outline":"f0c3"}},"bug":{"name":"bug","category":"Development","tags":["germ","insect","error","nature"],"variants":{"outline":"ea48","filled":"fd01"}},"building-arch":{"name":"building-arch","category":"Buildings","tags":["arc","curve","dome","monument","history","architecture"],"variants":{"outline":"ea49"}},"building-bank":{"name":"building-bank","category":"Buildings","tags":["architecture","city","urban","construction","money","credit","loan","workplace"],"variants":{"outline":"ebe2"}},"building-bridge-2":{"name":"building-bridge-2","category":"Buildings","tags":["architecture","urban","river","overpass","city","countryside"],"variants":{"outline":"ea4a"}},"building-bridge":{"name":"building-bridge","category":"Buildings","tags":["architecture","urban","river","overpass","city","countryside"],"variants":{"outline":"ea4b"}},"building-broadcast-tower":{"name":"building-broadcast-tower","category":"Buildings","tags":["communication","internet","signal"],"variants":{"outline":"f4be","filled":"fe81"}},"building-burj-al-arab":{"name":"building-burj-al-arab","category":"","tags":[],"variants":{"outline":"ff50"}},"building-carousel":{"name":"building-carousel","category":"Buildings","tags":["amusement","park","fair","merry-go-round","fun","entertaianment"],"variants":{"outline":"ed87"}},"building-castle":{"name":"building-castle","category":"Buildings","tags":["king","queen","royal","architecture","medieval","middle","ages","nobility","tower","fortress","fort","fortification","princess","prince"],"variants":{"outline":"ed88"}},"building-church":{"name":"building-church","category":"Buildings","tags":["religion","chapel","sanctuary","temple","cathedral","pray","prayer"],"variants":{"outline":"ea4c"}},"building-circus":{"name":"building-circus","category":"Buildings","tags":["tent","show","carnival","clown"],"variants":{"outline":"f4bf"}},"building-community":{"name":"building-community","category":"Buildings","tags":["place","skyscraper","district neighborhood","area"],"variants":{"outline":"ebf6"}},"building-cottage":{"name":"building-cottage","category":"Buildings","tags":["small","house","countryside","live","farm","rural","outskirts"],"variants":{"outline":"ee1b"}},"building-estate":{"name":"building-estate","category":"Buildings","tags":["office","property","work","architecture"],"variants":{"outline":"f5a5"}},"building-factory-2":{"name":"building-factory-2","category":"Buildings","tags":["goods","manufature","machine","trade","produce","product","worker","industry","industrial","site"],"variants":{"outline":"f082"}},"building-factory":{"name":"building-factory","category":"Buildings","tags":["goods","manufature","machine","trade","produce","product","worker","industry","industrial","site"],"variants":{"outline":"ee1c"}},"building-fortress":{"name":"building-fortress","category":"Buildings","tags":["military","town","defend","attack","stronghold","protect","protection","medieval"],"variants":{"outline":"ed89"}},"building-hospital":{"name":"building-hospital","category":"Buildings","tags":["doctor","sickness","illness","nurse","medication","emergency","treat","surgery"],"variants":{"outline":"ea4d"}},"building-lighthouse":{"name":"building-lighthouse","category":"Buildings","tags":["light","sea","tower","beacon","flash","ship","guide","lightship","leading","watchtower","signal"],"variants":{"outline":"ed8a"}},"building-monument":{"name":"building-monument","category":"Buildings","tags":["history","memorial","commemorative"],"variants":{"outline":"ed26"}},"building-mosque":{"name":"building-mosque","category":"Buildings","tags":[],"variants":{"outline":"fa57"}},"building-off":{"name":"building-off","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"fefd"}},"building-pavilion":{"name":"building-pavilion","category":"Buildings","tags":["place","party","residence","ornamentation"],"variants":{"outline":"ebf7"}},"building-skyscraper":{"name":"building-skyscraper","category":"Buildings","tags":["city","urban","office","workplace","corporation","hotel","apartments"],"variants":{"outline":"ec39"}},"building-stadium":{"name":"building-stadium","category":"Buildings","tags":["construciton","estate","football","supporters"],"variants":{"outline":"f641"}},"building-store":{"name":"building-store","category":"Buildings","tags":["shopping","shop","supermarket","market","products","retail","buy","sell"],"variants":{"outline":"ea4e"}},"building-tunnel":{"name":"building-tunnel","category":"Buildings","tags":["train","road","underground","subway"],"variants":{"outline":"f5a6"}},"building-warehouse":{"name":"building-warehouse","category":"Buildings","tags":["store","inventory","stuff","things","machinery"],"variants":{"outline":"ebe3"}},"building-wind-turbine":{"name":"building-wind-turbine","category":"Buildings","tags":["power","ecology","electricy","energy"],"variants":{"outline":"f4c0"}},"building":{"name":"building","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"ea4f"}},"buildings":{"name":"buildings","category":"Buildings","tags":["flat","office","city","urban","scyscraper","architecture","construction"],"variants":{"outline":"ff40"}},"bulb-off":{"name":"bulb-off","category":"","tags":["energy","power","electricity","creativity","light","idea"],"variants":{"outline":"ea50"}},"bulb":{"name":"bulb","category":"","tags":["energy","power","electricity","creativity","light","idea"],"variants":{"outline":"ea51","filled":"f66a"}},"bulldozer":{"name":"bulldozer","category":"Vehicles","tags":["tractor","construction","site","build","rear","machine"],"variants":{"outline":"ee1d"}},"burger":{"name":"burger","category":"","tags":[],"variants":{"outline":"fcb4"}},"bus-off":{"name":"bus-off","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"f3ce"}},"bus-stop":{"name":"bus-stop","category":"Vehicles","tags":["transport","station","city","travel"],"variants":{"outline":"f2d4"}},"bus":{"name":"bus","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ebe4"}},"businessplan":{"name":"businessplan","category":"","tags":["business","money","corporate","document","goal","achieve","manage","roadmap","grow"],"variants":{"outline":"ee1e"}},"butterfly":{"name":"butterfly","category":"Nature","tags":["animal","insect","nature","fly","wings"],"variants":{"outline":"efd9"}},"cactus-off":{"name":"cactus-off","category":"Nature","tags":["plant","desert","spikes","nature","garden"],"variants":{"outline":"f3cf"}},"cactus":{"name":"cactus","category":"Nature","tags":["plant","desert","spikes","nature","garden"],"variants":{"outline":"f21b","filled":"fb25"}},"cake-off":{"name":"cake-off","category":"","tags":["baking","birthday","party","chocolate","sweet"],"variants":{"outline":"f104"}},"cake":{"name":"cake","category":"","tags":["baking","birthday","party","chocolate","sweet"],"variants":{"outline":"f00f"}},"calculator-off":{"name":"calculator-off","category":"Devices","tags":["math","count","add","subtract","multiply","divide","amount"],"variants":{"outline":"f0c4"}},"calculator":{"name":"calculator","category":"Devices","tags":["math","count","add","subtract","multiply","divide","amount"],"variants":{"outline":"eb80","filled":"fb26"}},"calendar-bolt":{"name":"calendar-bolt","category":"System","tags":[],"variants":{"outline":"f822"}},"calendar-cancel":{"name":"calendar-cancel","category":"System","tags":[],"variants":{"outline":"f823"}},"calendar-check":{"name":"calendar-check","category":"System","tags":[],"variants":{"outline":"f824"}},"calendar-clock":{"name":"calendar-clock","category":"","tags":["time-calendar","schedule-clock","appointment","date-time","event-schedule","timing","calendar-clock","agenda","time-management","calendar-event"],"variants":{"outline":"fd2e"}},"calendar-code":{"name":"calendar-code","category":"System","tags":[],"variants":{"outline":"f825"}},"calendar-cog":{"name":"calendar-cog","category":"System","tags":[],"variants":{"outline":"f826"}},"calendar-dollar":{"name":"calendar-dollar","category":"System","tags":[],"variants":{"outline":"f827"}},"calendar-dot":{"name":"calendar-dot","category":"","tags":[],"variants":{"outline":"fd3e"}},"calendar-down":{"name":"calendar-down","category":"System","tags":[],"variants":{"outline":"f828"}},"calendar-due":{"name":"calendar-due","category":"System","tags":["date","deadline","schedule"],"variants":{"outline":"f621"}},"calendar-event":{"name":"calendar-event","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ea52"}},"calendar-exclamation":{"name":"calendar-exclamation","category":"System","tags":[],"variants":{"outline":"f829"}},"calendar-heart":{"name":"calendar-heart","category":"System","tags":[],"variants":{"outline":"f82a"}},"calendar-minus":{"name":"calendar-minus","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ebb9"}},"calendar-month":{"name":"calendar-month","category":"","tags":["monthly-calendar","month-view","date-month","monthly-schedule","timeframe","calendar-grid","month","month-planner","monthly","date-grid"],"variants":{"outline":"fd2f"}},"calendar-off":{"name":"calendar-off","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ee1f"}},"calendar-pause":{"name":"calendar-pause","category":"System","tags":[],"variants":{"outline":"f82b"}},"calendar-pin":{"name":"calendar-pin","category":"System","tags":[],"variants":{"outline":"f82c"}},"calendar-plus":{"name":"calendar-plus","category":"System","tags":["date","day","plan","schedule","agenda","add","calender"],"variants":{"outline":"ebba"}},"calendar-question":{"name":"calendar-question","category":"System","tags":[],"variants":{"outline":"f82d"}},"calendar-repeat":{"name":"calendar-repeat","category":"System","tags":[],"variants":{"outline":"fad2"}},"calendar-sad":{"name":"calendar-sad","category":"","tags":[],"variants":{"outline":"fd1d"}},"calendar-search":{"name":"calendar-search","category":"System","tags":[],"variants":{"outline":"f82e"}},"calendar-share":{"name":"calendar-share","category":"System","tags":[],"variants":{"outline":"f82f"}},"calendar-smile":{"name":"calendar-smile","category":"","tags":[],"variants":{"outline":"fd1e"}},"calendar-star":{"name":"calendar-star","category":"System","tags":[],"variants":{"outline":"f830"}},"calendar-stats":{"name":"calendar-stats","category":"System","tags":["plan","timetable","schedule","meeting","busy","month","year","date","statistics","calender"],"variants":{"outline":"ee20"}},"calendar-time":{"name":"calendar-time","category":"System","tags":["plan","timetable","schedule","meeting","busy","month","year","date","calender"],"variants":{"outline":"ee21"}},"calendar-up":{"name":"calendar-up","category":"System","tags":[],"variants":{"outline":"f831"}},"calendar-user":{"name":"calendar-user","category":"","tags":[],"variants":{"outline":"fd1f"}},"calendar-week":{"name":"calendar-week","category":"","tags":["weekly-calendar","week-view","date-week","weekly-schedule","timeframe","calendar-grid","week","week-planner","weekly","date-grid"],"variants":{"outline":"fd30"}},"calendar-x":{"name":"calendar-x","category":"System","tags":[],"variants":{"outline":"f832"}},"calendar":{"name":"calendar","category":"System","tags":["date","day","plan","schedule","agenda","calender"],"variants":{"outline":"ea53","filled":"fb27"}},"camera-bolt":{"name":"camera-bolt","category":"Media","tags":[],"variants":{"outline":"f833"}},"camera-cancel":{"name":"camera-cancel","category":"Media","tags":[],"variants":{"outline":"f834"}},"camera-check":{"name":"camera-check","category":"Media","tags":[],"variants":{"outline":"f835"}},"camera-code":{"name":"camera-code","category":"Media","tags":[],"variants":{"outline":"f836"}},"camera-cog":{"name":"camera-cog","category":"Media","tags":[],"variants":{"outline":"f837"}},"camera-dollar":{"name":"camera-dollar","category":"Media","tags":[],"variants":{"outline":"f838"}},"camera-down":{"name":"camera-down","category":"Media","tags":[],"variants":{"outline":"f839"}},"camera-exclamation":{"name":"camera-exclamation","category":"Media","tags":[],"variants":{"outline":"f83a"}},"camera-heart":{"name":"camera-heart","category":"Media","tags":[],"variants":{"outline":"f83b"}},"camera-minus":{"name":"camera-minus","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ec3a"}},"camera-off":{"name":"camera-off","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ecee"}},"camera-pause":{"name":"camera-pause","category":"Media","tags":[],"variants":{"outline":"f83c"}},"camera-pin":{"name":"camera-pin","category":"Media","tags":[],"variants":{"outline":"f83d"}},"camera-plus":{"name":"camera-plus","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ec3b"}},"camera-question":{"name":"camera-question","category":"Media","tags":[],"variants":{"outline":"f83e"}},"camera-rotate":{"name":"camera-rotate","category":"Photography","tags":["photo","photography","picture","face","instagram","portrait","digital","smartphone","selfie"],"variants":{"outline":"ee22"}},"camera-search":{"name":"camera-search","category":"Media","tags":[],"variants":{"outline":"f83f"}},"camera-selfie":{"name":"camera-selfie","category":"Photography","tags":["photo","photography","picture","face","instagram","portrait","digital","smartphone"],"variants":{"outline":"ee23"}},"camera-share":{"name":"camera-share","category":"Media","tags":[],"variants":{"outline":"f840"}},"camera-star":{"name":"camera-star","category":"Media","tags":[],"variants":{"outline":"f841"}},"camera-up":{"name":"camera-up","category":"Media","tags":[],"variants":{"outline":"f842"}},"camera-x":{"name":"camera-x","category":"Media","tags":[],"variants":{"outline":"f843"}},"camera":{"name":"camera","category":"Media","tags":["video","photo","aperture"],"variants":{"outline":"ea54","filled":"fa37"}},"camper":{"name":"camper","category":"Vehicles","tags":[],"variants":{"outline":"fa25"}},"campfire":{"name":"campfire","category":"Map","tags":["camping","bonfire","wood","camp","burn","flame"],"variants":{"outline":"f5a7","filled":"fb28"}},"cancel":{"name":"cancel","category":"Shapes","tags":["cancel","no"],"variants":{"outline":"ff11"}},"candle":{"name":"candle","category":"","tags":["light","birthday","decoration","halloween","fire","christmas"],"variants":{"outline":"efc6","filled":"fc23"}},"candy-off":{"name":"candy-off","category":"Food","tags":["sweet","food","sugar","cane","halloween"],"variants":{"outline":"f0c5"}},"candy":{"name":"candy","category":"Food","tags":["sweet","food","sugar","cane","halloween"],"variants":{"outline":"ef0d"}},"cane":{"name":"cane","category":"Health","tags":["candy","christmas","sweet","food","decoration"],"variants":{"outline":"f50f"}},"cannabis":{"name":"cannabis","category":"Nature","tags":["marijuana","weed","drug","cbd","medical"],"variants":{"outline":"f4c1"}},"cap-projecting":{"name":"cap-projecting","category":"Design","tags":[],"variants":{"outline":"ff22"}},"cap-rounded":{"name":"cap-rounded","category":"Design","tags":[],"variants":{"outline":"ff21"}},"cap-straight":{"name":"cap-straight","category":"Design","tags":[],"variants":{"outline":"ff20"}},"capsule-horizontal":{"name":"capsule-horizontal","category":"Shapes","tags":[],"variants":{"outline":"fae2","filled":"fc25"}},"capsule":{"name":"capsule","category":"Shapes","tags":[],"variants":{"outline":"fae3","filled":"fc24"}},"capture-off":{"name":"capture-off","category":"Media","tags":["photo","photographer","sharpen"],"variants":{"outline":"f0c6"}},"capture":{"name":"capture","category":"Media","tags":["photo","photographer","sharpen"],"variants":{"outline":"ec3c","filled":"fb29"}},"car-4wd":{"name":"car-4wd","category":"","tags":[],"variants":{"outline":"fdb8"}},"car-crane":{"name":"car-crane","category":"Vehicles","tags":["transport","truck","machine","lifter"],"variants":{"outline":"ef25"}},"car-crash":{"name":"car-crash","category":"Vehicles","tags":["accident","collision","damage","insurance"],"variants":{"outline":"efa4"}},"car-fan-1":{"name":"car-fan-1","category":"","tags":[],"variants":{"outline":"fdb7"}},"car-fan-2":{"name":"car-fan-2","category":"","tags":[],"variants":{"outline":"fdb6"}},"car-fan-3":{"name":"car-fan-3","category":"","tags":[],"variants":{"outline":"fdb5"}},"car-fan-auto":{"name":"car-fan-auto","category":"","tags":[],"variants":{"outline":"fdb4"}},"car-fan":{"name":"car-fan","category":"","tags":[],"variants":{"outline":"fdb3"}},"car-garage":{"name":"car-garage","category":"","tags":["auto-shop","vehicle-repair","automobile-maintenance","parking-garage","car-storage","automotive","garage-service","car-park","vehicle-maintenance","car-repair"],"variants":{"outline":"fc77"}},"car-off":{"name":"car-off","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"f0c7"}},"car-suv":{"name":"car-suv","category":"Vehicles","tags":["sport-utility","crossover","automobile","suv","off-road","four-wheel-drive","vehicle","transportation","auto","truck"],"variants":{"outline":"fc8b"}},"car-turbine":{"name":"car-turbine","category":"Vehicles","tags":["detail","service","mechanic","part","power"],"variants":{"outline":"f4fd"}},"car":{"name":"car","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ebbb"}},"carambola":{"name":"carambola","category":"Food","tags":["fruit","starfruit","carambola","tropical","exotic","five","five-pointed","star","healthy","vitamin","nutrition","diet"],"variants":{"outline":"feb9"}},"caravan":{"name":"caravan","category":"Vehicles","tags":["journey","trip","holidays","camping","trailer"],"variants":{"outline":"ec7c"}},"cardboards-off":{"name":"cardboards-off","category":"Devices","tags":["vr","virtual reality","watch","viewer","technology"],"variants":{"outline":"f0c8"}},"cardboards":{"name":"cardboards","category":"Devices","tags":["vr","virtual reality","watch","viewer","technology"],"variants":{"outline":"ed74"}},"cards":{"name":"cards","category":"Design","tags":["game","poker","credit","peyment","casino"],"variants":{"outline":"f510","filled":"fc26"}},"caret-down":{"name":"caret-down","category":"Arrows","tags":["next","bottom","dropdown","show","more"],"variants":{"outline":"eb5d","filled":"fb2a"}},"caret-left-right":{"name":"caret-left-right","category":"","tags":["arrow-horizontal","double-arrow","side-arrow","left-right","horizontal-pointer","directional","horizontal-caret","bidirectional","opposite","horizontal-arrow"],"variants":{"outline":"fc43","filled":"fd02"}},"caret-left":{"name":"caret-left","category":"Arrows","tags":["back","previous"],"variants":{"outline":"eb5e","filled":"fb2b"}},"caret-right":{"name":"caret-right","category":"Arrows","tags":["next","play","more"],"variants":{"outline":"eb5f","filled":"fb2c"}},"caret-up-down":{"name":"caret-up-down","category":"","tags":[],"variants":{"outline":"fc44","filled":"fd03"}},"caret-up":{"name":"caret-up","category":"Arrows","tags":["dropdown","less","up"],"variants":{"outline":"eb60","filled":"fb2d"}},"carousel-horizontal":{"name":"carousel-horizontal","category":"Design","tags":["app","mobile","display","preview"],"variants":{"outline":"f659","filled":"fa92"}},"carousel-vertical":{"name":"carousel-vertical","category":"Design","tags":["app","mobile","display","preview"],"variants":{"outline":"f65a","filled":"fa93"}},"carrot-off":{"name":"carrot-off","category":"Food","tags":["food","healthy","rabbit","vegetable"],"variants":{"outline":"f3d0"}},"carrot":{"name":"carrot","category":"Food","tags":["food","healthy","rabbit","vegetable"],"variants":{"outline":"f21c"}},"cash-banknote-off":{"name":"cash-banknote-off","category":"E-commerce","tags":["money","pay","bank","dollar","pound","yen","business"],"variants":{"outline":"ee24"}},"cash-banknote":{"name":"cash-banknote","category":"E-commerce","tags":["money","pay","bank","dollar","pound","yen","business"],"variants":{"outline":"ee25","filled":"fe80"}},"cash-off":{"name":"cash-off","category":"E-commerce","tags":["currency","payment","money","pay"],"variants":{"outline":"f105"}},"cash-register":{"name":"cash-register","category":"E-commerce","tags":["payment","money","pay","cashier","register","purchase","checkout","transaction"],"variants":{"outline":"fee6"}},"cash":{"name":"cash","category":"E-commerce","tags":["currency","payment","money","pay"],"variants":{"outline":"ea55"}},"cast-off":{"name":"cast-off","category":"Media","tags":["broadcast","stream","mirroring","apple","airplay","chromecast"],"variants":{"outline":"f0c9"}},"cast":{"name":"cast","category":"Media","tags":["broadcast","stream","mirroring","apple","airplay","chromecast"],"variants":{"outline":"ea56"}},"cat":{"name":"cat","category":"Animals","tags":["animal","pet","kitty","cute"],"variants":{"outline":"f65b"}},"category-2":{"name":"category-2","category":"Shapes","tags":["folder","menu","tag","game"],"variants":{"outline":"f1f5"}},"category-minus":{"name":"category-minus","category":"","tags":[],"variants":{"outline":"fd20"}},"category-plus":{"name":"category-plus","category":"","tags":[],"variants":{"outline":"fd21"}},"category":{"name":"category","category":"Shapes","tags":["folder","menu","tag","game"],"variants":{"outline":"f1f6","filled":"fb2e"}},"ce-off":{"name":"ce-off","category":"Symbols","tags":["sign","marking","administration","administrative","conformity","health","safety","environment","protection","standards","product","europe","eea","economic","area","manufacture"],"variants":{"outline":"f0ca"}},"ce":{"name":"ce","category":"Symbols","tags":["sign","marking","administration","administrative","conformity","health","safety","environment","protection","standards","product","europe","eea","economic","area","manufacture"],"variants":{"outline":"ed75"}},"cell-signal-1":{"name":"cell-signal-1","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f083"}},"cell-signal-2":{"name":"cell-signal-2","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f084"}},"cell-signal-3":{"name":"cell-signal-3","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f085"}},"cell-signal-4":{"name":"cell-signal-4","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f086"}},"cell-signal-5":{"name":"cell-signal-5","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f087"}},"cell-signal-off":{"name":"cell-signal-off","category":"Devices","tags":["mobile","phone","connetcion","wireless","network"],"variants":{"outline":"f088"}},"cell":{"name":"cell","category":"","tags":["biology","molecule","chemistry","human","laboratory"],"variants":{"outline":"f05f"}},"certificate-2-off":{"name":"certificate-2-off","category":"Document","tags":["award","license","document","achievement","course","complete"],"variants":{"outline":"f0cb"}},"certificate-2":{"name":"certificate-2","category":"Document","tags":["award","license","document","achievement","course","complete"],"variants":{"outline":"f073"}},"certificate-off":{"name":"certificate-off","category":"Document","tags":["document","official","attest","signature","birth","death","gift","authenticity","seal","course","complete","qualification"],"variants":{"outline":"f0cc"}},"certificate":{"name":"certificate","category":"Document","tags":["document","official","attest","signature","birth","death","gift","authenticity","seal","course","complete","qualification"],"variants":{"outline":"ed76"}},"chair-director":{"name":"chair-director","category":"","tags":["film","seat","furniture","interior"],"variants":{"outline":"f2d5"}},"chalkboard-off":{"name":"chalkboard-off","category":"Document","tags":["school","classroom","education","learn"],"variants":{"outline":"f3d1"}},"chalkboard":{"name":"chalkboard","category":"Document","tags":["school","classroom","education","learn"],"variants":{"outline":"f34d"}},"charging-pile":{"name":"charging-pile","category":"Vehicles","tags":["electric","electricity","hybrid","tesla","station","electronic","point"],"variants":{"outline":"ee26"}},"chart-arcs-3":{"name":"chart-arcs-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee27"}},"chart-arcs":{"name":"chart-arcs","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee28"}},"chart-area-line":{"name":"chart-area-line","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea57","filled":"f66c"}},"chart-area":{"name":"chart-area","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea58","filled":"f66b"}},"chart-arrows-vertical":{"name":"chart-arrows-vertical","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","level","increase","decrease"],"variants":{"outline":"ee29"}},"chart-arrows":{"name":"chart-arrows","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","level","increase","decrease"],"variants":{"outline":"ee2a"}},"chart-bar-off":{"name":"chart-bar-off","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"f3d2"}},"chart-bar-popular":{"name":"chart-bar-popular","category":"","tags":[],"variants":{"outline":"fef7"}},"chart-bar":{"name":"chart-bar","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea59"}},"chart-bubble":{"name":"chart-bubble","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ec75","filled":"f66d"}},"chart-candle":{"name":"chart-candle","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5a","filled":"f66e"}},"chart-circles":{"name":"chart-circles","category":"Charts","tags":["statistics","analysis","analyse","graph"],"variants":{"outline":"ee2b"}},"chart-cohort":{"name":"chart-cohort","category":"","tags":[],"variants":{"outline":"fef6"}},"chart-donut-2":{"name":"chart-donut-2","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2c"}},"chart-donut-3":{"name":"chart-donut-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2d"}},"chart-donut-4":{"name":"chart-donut-4","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee2e"}},"chart-donut":{"name":"chart-donut","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5b","filled":"f66f"}},"chart-dots-2":{"name":"chart-dots-2","category":"Charts","tags":["graph","diagram","analyticks","statistics","data","value","variable","scale","statistical"],"variants":{"outline":"f097"}},"chart-dots-3":{"name":"chart-dots-3","category":"Charts","tags":["graph","diagram","analyticks","statistics","data","value","variable","scale","statistical"],"variants":{"outline":"f098"}},"chart-dots":{"name":"chart-dots","category":"Charts","tags":["statistics","data","value","variable","scale","statistical"],"variants":{"outline":"ee2f","filled":"fd04"}},"chart-funnel":{"name":"chart-funnel","category":"","tags":[],"variants":{"outline":"fef5"}},"chart-grid-dots":{"name":"chart-grid-dots","category":"Charts","tags":["graph","diagram","analytics","statistics","data"],"variants":{"outline":"f4c2","filled":"fd05"}},"chart-histogram":{"name":"chart-histogram","category":"Charts","tags":["graph","diagram","curves","analytics"],"variants":{"outline":"f65c"}},"chart-infographic":{"name":"chart-infographic","category":"Charts","tags":["statistics","data","value","variable","scale","statistical","bar","information","report"],"variants":{"outline":"ee30"}},"chart-line":{"name":"chart-line","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5c"}},"chart-pie-2":{"name":"chart-pie-2","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee31"}},"chart-pie-3":{"name":"chart-pie-3","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee32"}},"chart-pie-4":{"name":"chart-pie-4","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ee33"}},"chart-pie-off":{"name":"chart-pie-off","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"f3d3"}},"chart-pie":{"name":"chart-pie","category":"Charts","tags":["statistics","diagram","graph","rhythm","data","analysis"],"variants":{"outline":"ea5d","filled":"f670"}},"chart-ppf":{"name":"chart-ppf","category":"Charts","tags":["graph","diagram","curves"],"variants":{"outline":"f618"}},"chart-radar":{"name":"chart-radar","category":"Charts","tags":["statistics","data","value","two","dimensions","variable","report","points"],"variants":{"outline":"ed77"}},"chart-sankey":{"name":"chart-sankey","category":"Charts","tags":["graph","diagram","curves","analytics"],"variants":{"outline":"f619"}},"chart-scatter-3d":{"name":"chart-scatter-3d","category":"","tags":[],"variants":{"outline":"fd92"}},"chart-scatter":{"name":"chart-scatter","category":"","tags":[],"variants":{"outline":"fd93"}},"chart-treemap":{"name":"chart-treemap","category":"Charts","tags":["diagram","analytics","buisness","data"],"variants":{"outline":"f381"}},"check":{"name":"check","category":"System","tags":["tick","yes","confirm"],"variants":{"outline":"ea5e"}},"checkbox":{"name":"checkbox","category":"System","tags":["survey","confirm","tick","yes","to-do"],"variants":{"outline":"eba6"}},"checklist":{"name":"checklist","category":"","tags":["task","delivery","clipboard","document","plan"],"variants":{"outline":"f074"}},"checks":{"name":"checks","category":"System","tags":["tick","yes","confirm"],"variants":{"outline":"ebaa"}},"checkup-list":{"name":"checkup-list","category":"Health","tags":["car","hospital","health","report"],"variants":{"outline":"ef5a"}},"cheese":{"name":"cheese","category":"Food","tags":["food","mouse","cooking","pizza","sandwiches","product","edam","gouda"],"variants":{"outline":"ef26"}},"chef-hat-off":{"name":"chef-hat-off","category":"Food","tags":["cooking","kitchen","restaurant","food","job"],"variants":{"outline":"f3d4"}},"chef-hat":{"name":"chef-hat","category":"Food","tags":["cooking","kitchen","restaurant","food","job"],"variants":{"outline":"f21d"}},"cherry":{"name":"cherry","category":"Nature","tags":["fruit","food","sweet","healthy"],"variants":{"outline":"f511","filled":"f728"}},"chess-bishop":{"name":"chess-bishop","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56b","filled":"f729"}},"chess-king":{"name":"chess-king","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56c","filled":"f72b"}},"chess-knight":{"name":"chess-knight","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56d","filled":"f72c"}},"chess-queen":{"name":"chess-queen","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56e","filled":"f72d"}},"chess-rook":{"name":"chess-rook","category":"Sport","tags":["game","figure","strategy","pawn"],"variants":{"outline":"f56f","filled":"f72e"}},"chess":{"name":"chess","category":"Sport","tags":["game","strategy","pawn","figure"],"variants":{"outline":"f382","filled":"f72a"}},"chevron-compact-down":{"name":"chevron-compact-down","category":"Arrows","tags":[],"variants":{"outline":"faf0"}},"chevron-compact-left":{"name":"chevron-compact-left","category":"Arrows","tags":[],"variants":{"outline":"faf1"}},"chevron-compact-right":{"name":"chevron-compact-right","category":"Arrows","tags":[],"variants":{"outline":"faf2"}},"chevron-compact-up":{"name":"chevron-compact-up","category":"Arrows","tags":[],"variants":{"outline":"faf3"}},"chevron-down-left":{"name":"chevron-down-left","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed09"}},"chevron-down-right":{"name":"chevron-down-right","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0a"}},"chevron-down":{"name":"chevron-down","category":"Arrows","tags":["move","next","swipe","bottom"],"variants":{"outline":"ea5f"}},"chevron-left-pipe":{"name":"chevron-left-pipe","category":"Arrows","tags":[],"variants":{"outline":"fae4"}},"chevron-left":{"name":"chevron-left","category":"Arrows","tags":["move","previous","back"],"variants":{"outline":"ea60"}},"chevron-right-pipe":{"name":"chevron-right-pipe","category":"Arrows","tags":[],"variants":{"outline":"fae5"}},"chevron-right":{"name":"chevron-right","category":"Arrows","tags":["move","checklist","next"],"variants":{"outline":"ea61"}},"chevron-up-left":{"name":"chevron-up-left","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0b"}},"chevron-up-right":{"name":"chevron-up-right","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0c"}},"chevron-up":{"name":"chevron-up","category":"Arrows","tags":["move","top"],"variants":{"outline":"ea62"}},"chevrons-down-left":{"name":"chevrons-down-left","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0d"}},"chevrons-down-right":{"name":"chevrons-down-right","category":"Arrows","tags":["move","aside","bottom"],"variants":{"outline":"ed0e"}},"chevrons-down":{"name":"chevrons-down","category":"Arrows","tags":["move","bottom"],"variants":{"outline":"ea63"}},"chevrons-left":{"name":"chevrons-left","category":"Arrows","tags":["move","back","roll"],"variants":{"outline":"ea64"}},"chevrons-right":{"name":"chevrons-right","category":"Arrows","tags":["move","next","checklist"],"variants":{"outline":"ea65"}},"chevrons-up-left":{"name":"chevrons-up-left","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed0f"}},"chevrons-up-right":{"name":"chevrons-up-right","category":"Arrows","tags":["move","aside","top"],"variants":{"outline":"ed10"}},"chevrons-up":{"name":"chevrons-up","category":"Arrows","tags":["move","top"],"variants":{"outline":"ea66"}},"chisel":{"name":"chisel","category":"","tags":["tool","equipment","work","wood"],"variants":{"outline":"f383"}},"christmas-ball":{"name":"christmas-ball","category":"","tags":["holiday-ball","festive","ornament","decoration","christmas","bauble","celebration","seasonal","holiday","decorative"],"variants":{"outline":"fd31"}},"christmas-tree-off":{"name":"christmas-tree-off","category":"Nature","tags":["holidays","pine","decorate","decoration","gift","present","carol","evergreen","spruce","fir","winter"],"variants":{"outline":"f3d5"}},"christmas-tree":{"name":"christmas-tree","category":"Nature","tags":["holidays","pine","decorate","decoration","gift","present","carol","evergreen","spruce","fir","winter"],"variants":{"outline":"ed78"}},"circle-arrow-down-left":{"name":"circle-arrow-down-left","category":"Arrows","tags":["shape","direction","west","bottom","south"],"variants":{"outline":"f6f6","filled":"f6f5"}},"circle-arrow-down-right":{"name":"circle-arrow-down-right","category":"Arrows","tags":["shape","direction","bottom","south","east"],"variants":{"outline":"f6f8","filled":"f6f7"}},"circle-arrow-down":{"name":"circle-arrow-down","category":"Arrows","tags":["shape","direction","bottom","south"],"variants":{"outline":"f6f9","filled":"f6f4"}},"circle-arrow-left":{"name":"circle-arrow-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f6fb","filled":"f6fa"}},"circle-arrow-right":{"name":"circle-arrow-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f6fd","filled":"f6fc"}},"circle-arrow-up-left":{"name":"circle-arrow-up-left","category":"Arrows","tags":["shape","direction","north","top","west"],"variants":{"outline":"f700","filled":"f6ff"}},"circle-arrow-up-right":{"name":"circle-arrow-up-right","category":"Arrows","tags":["shape","direction","north","top","east"],"variants":{"outline":"f702","filled":"f701"}},"circle-arrow-up":{"name":"circle-arrow-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f703","filled":"f6fe"}},"circle-caret-down":{"name":"circle-caret-down","category":"Arrows","tags":["direction","shape","south","bottom"],"variants":{"outline":"f4a9"}},"circle-caret-left":{"name":"circle-caret-left","category":"Arrows","tags":["direction","shape","west"],"variants":{"outline":"f4aa"}},"circle-caret-right":{"name":"circle-caret-right","category":"Arrows","tags":["direction","shape","east"],"variants":{"outline":"f4ab"}},"circle-caret-up":{"name":"circle-caret-up","category":"Arrows","tags":["direction","shape","north","top"],"variants":{"outline":"f4ac"}},"circle-check":{"name":"circle-check","category":"Shapes","tags":["accept","yes","tick","done"],"variants":{"outline":"ea67","filled":"f704"}},"circle-chevron-down":{"name":"circle-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f622"}},"circle-chevron-left":{"name":"circle-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f623"}},"circle-chevron-right":{"name":"circle-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f624"}},"circle-chevron-up":{"name":"circle-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f625"}},"circle-chevrons-down":{"name":"circle-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f642"}},"circle-chevrons-left":{"name":"circle-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f643"}},"circle-chevrons-right":{"name":"circle-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f644"}},"circle-chevrons-up":{"name":"circle-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f645"}},"circle-dashed-check":{"name":"circle-dashed-check","category":"Shapes","tags":["check","success","done","complete","tick","correct","confirm","approved","verified","valid","yes","circle","dashed"],"variants":{"outline":"feb8"}},"circle-dashed-letter-a":{"name":"circle-dashed-letter-a","category":"Letters","tags":[],"variants":{"outline":"ff9a"}},"circle-dashed-letter-b":{"name":"circle-dashed-letter-b","category":"Letters","tags":[],"variants":{"outline":"ff99"}},"circle-dashed-letter-c":{"name":"circle-dashed-letter-c","category":"Letters","tags":[],"variants":{"outline":"ff98"}},"circle-dashed-letter-d":{"name":"circle-dashed-letter-d","category":"Letters","tags":[],"variants":{"outline":"ff97"}},"circle-dashed-letter-e":{"name":"circle-dashed-letter-e","category":"Letters","tags":[],"variants":{"outline":"ff96"}},"circle-dashed-letter-f":{"name":"circle-dashed-letter-f","category":"Letters","tags":[],"variants":{"outline":"ff95"}},"circle-dashed-letter-g":{"name":"circle-dashed-letter-g","category":"Letters","tags":[],"variants":{"outline":"ff94"}},"circle-dashed-letter-h":{"name":"circle-dashed-letter-h","category":"Letters","tags":[],"variants":{"outline":"ff93"}},"circle-dashed-letter-i":{"name":"circle-dashed-letter-i","category":"Letters","tags":[],"variants":{"outline":"ff92"}},"circle-dashed-letter-j":{"name":"circle-dashed-letter-j","category":"Letters","tags":[],"variants":{"outline":"ff91"}},"circle-dashed-letter-k":{"name":"circle-dashed-letter-k","category":"Letters","tags":[],"variants":{"outline":"ff90"}},"circle-dashed-letter-l":{"name":"circle-dashed-letter-l","category":"Letters","tags":[],"variants":{"outline":"ff8f"}},"circle-dashed-letter-letter-v":{"name":"circle-dashed-letter-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff8e"}},"circle-dashed-letter-m":{"name":"circle-dashed-letter-m","category":"Letters","tags":[],"variants":{"outline":"ff8d"}},"circle-dashed-letter-n":{"name":"circle-dashed-letter-n","category":"Letters","tags":[],"variants":{"outline":"ff8c"}},"circle-dashed-letter-o":{"name":"circle-dashed-letter-o","category":"Letters","tags":[],"variants":{"outline":"ff8b"}},"circle-dashed-letter-p":{"name":"circle-dashed-letter-p","category":"Letters","tags":[],"variants":{"outline":"ff8a"}},"circle-dashed-letter-q":{"name":"circle-dashed-letter-q","category":"Letters","tags":[],"variants":{"outline":"ff89"}},"circle-dashed-letter-r":{"name":"circle-dashed-letter-r","category":"Letters","tags":[],"variants":{"outline":"ff88"}},"circle-dashed-letter-s":{"name":"circle-dashed-letter-s","category":"Letters","tags":[],"variants":{"outline":"ff87"}},"circle-dashed-letter-t":{"name":"circle-dashed-letter-t","category":"Letters","tags":[],"variants":{"outline":"ff86"}},"circle-dashed-letter-u":{"name":"circle-dashed-letter-u","category":"Letters","tags":[],"variants":{"outline":"ff85"}},"circle-dashed-letter-v":{"name":"circle-dashed-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff84"}},"circle-dashed-letter-w":{"name":"circle-dashed-letter-w","category":"Letters","tags":[],"variants":{"outline":"ff83"}},"circle-dashed-letter-x":{"name":"circle-dashed-letter-x","category":"Letters","tags":[],"variants":{"outline":"ff82"}},"circle-dashed-letter-y":{"name":"circle-dashed-letter-y","category":"Letters","tags":[],"variants":{"outline":"ff81"}},"circle-dashed-letter-z":{"name":"circle-dashed-letter-z","category":"Letters","tags":[],"variants":{"outline":"ff80"}},"circle-dashed-minus":{"name":"circle-dashed-minus","category":"Shapes","tags":[],"variants":{"outline":"feb7"}},"circle-dashed-number-0":{"name":"circle-dashed-number-0","category":"Numbers","tags":[],"variants":{"outline":"fc6b"}},"circle-dashed-number-1":{"name":"circle-dashed-number-1","category":"Numbers","tags":[],"variants":{"outline":"fc6c"}},"circle-dashed-number-2":{"name":"circle-dashed-number-2","category":"Numbers","tags":[],"variants":{"outline":"fc6d"}},"circle-dashed-number-3":{"name":"circle-dashed-number-3","category":"Numbers","tags":[],"variants":{"outline":"fc6e"}},"circle-dashed-number-4":{"name":"circle-dashed-number-4","category":"Numbers","tags":[],"variants":{"outline":"fc6f"}},"circle-dashed-number-5":{"name":"circle-dashed-number-5","category":"Numbers","tags":[],"variants":{"outline":"fc70"}},"circle-dashed-number-6":{"name":"circle-dashed-number-6","category":"Numbers","tags":[],"variants":{"outline":"fc71"}},"circle-dashed-number-7":{"name":"circle-dashed-number-7","category":"Numbers","tags":[],"variants":{"outline":"fc72"}},"circle-dashed-number-8":{"name":"circle-dashed-number-8","category":"Numbers","tags":[],"variants":{"outline":"fc73"}},"circle-dashed-number-9":{"name":"circle-dashed-number-9","category":"Numbers","tags":[],"variants":{"outline":"fc74"}},"circle-dashed-percentage":{"name":"circle-dashed-percentage","category":"","tags":[],"variants":{"outline":"fd7a"}},"circle-dashed-plus":{"name":"circle-dashed-plus","category":"Shapes","tags":[],"variants":{"outline":"feb6"}},"circle-dashed-x":{"name":"circle-dashed-x","category":"Shapes","tags":[],"variants":{"outline":"fc75"}},"circle-dashed":{"name":"circle-dashed","category":"Shapes","tags":["shape","line","check"],"variants":{"outline":"ed27"}},"circle-dot":{"name":"circle-dot","category":"Shapes","tags":["crosshair","shape","geometry"],"variants":{"outline":"efb1","filled":"f705"}},"circle-dotted-letter-a":{"name":"circle-dotted-letter-a","category":"Letters","tags":[],"variants":{"outline":"ff7f"}},"circle-dotted-letter-b":{"name":"circle-dotted-letter-b","category":"Letters","tags":[],"variants":{"outline":"ff7e"}},"circle-dotted-letter-c":{"name":"circle-dotted-letter-c","category":"Letters","tags":[],"variants":{"outline":"ff7d"}},"circle-dotted-letter-d":{"name":"circle-dotted-letter-d","category":"Letters","tags":[],"variants":{"outline":"ff7c"}},"circle-dotted-letter-e":{"name":"circle-dotted-letter-e","category":"Letters","tags":[],"variants":{"outline":"ff7b"}},"circle-dotted-letter-f":{"name":"circle-dotted-letter-f","category":"Letters","tags":[],"variants":{"outline":"ff7a"}},"circle-dotted-letter-g":{"name":"circle-dotted-letter-g","category":"Letters","tags":[],"variants":{"outline":"ff79"}},"circle-dotted-letter-h":{"name":"circle-dotted-letter-h","category":"Letters","tags":[],"variants":{"outline":"ff78"}},"circle-dotted-letter-i":{"name":"circle-dotted-letter-i","category":"Letters","tags":[],"variants":{"outline":"ff77"}},"circle-dotted-letter-j":{"name":"circle-dotted-letter-j","category":"Letters","tags":[],"variants":{"outline":"ff76"}},"circle-dotted-letter-k":{"name":"circle-dotted-letter-k","category":"Letters","tags":[],"variants":{"outline":"ff75"}},"circle-dotted-letter-l":{"name":"circle-dotted-letter-l","category":"Letters","tags":[],"variants":{"outline":"ff74"}},"circle-dotted-letter-m":{"name":"circle-dotted-letter-m","category":"Letters","tags":[],"variants":{"outline":"ff73"}},"circle-dotted-letter-n":{"name":"circle-dotted-letter-n","category":"Letters","tags":[],"variants":{"outline":"ff72"}},"circle-dotted-letter-o":{"name":"circle-dotted-letter-o","category":"Letters","tags":[],"variants":{"outline":"ff71"}},"circle-dotted-letter-p":{"name":"circle-dotted-letter-p","category":"Letters","tags":[],"variants":{"outline":"ff70"}},"circle-dotted-letter-q":{"name":"circle-dotted-letter-q","category":"Letters","tags":[],"variants":{"outline":"ff6f"}},"circle-dotted-letter-r":{"name":"circle-dotted-letter-r","category":"Letters","tags":[],"variants":{"outline":"ff6e"}},"circle-dotted-letter-s":{"name":"circle-dotted-letter-s","category":"Letters","tags":[],"variants":{"outline":"ff6d"}},"circle-dotted-letter-t":{"name":"circle-dotted-letter-t","category":"Letters","tags":[],"variants":{"outline":"ff6c"}},"circle-dotted-letter-u":{"name":"circle-dotted-letter-u","category":"Letters","tags":[],"variants":{"outline":"ff6b"}},"circle-dotted-letter-v":{"name":"circle-dotted-letter-v","category":"Letters","tags":[],"variants":{"outline":"ff6a"}},"circle-dotted-letter-w":{"name":"circle-dotted-letter-w","category":"Letters","tags":[],"variants":{"outline":"ff69"}},"circle-dotted-letter-x":{"name":"circle-dotted-letter-x","category":"Letters","tags":[],"variants":{"outline":"ff68"}},"circle-dotted-letter-y":{"name":"circle-dotted-letter-y","category":"Letters","tags":[],"variants":{"outline":"ff67"}},"circle-dotted-letter-z":{"name":"circle-dotted-letter-z","category":"Letters","tags":[],"variants":{"outline":"ff66"}},"circle-dotted":{"name":"circle-dotted","category":"Shapes","tags":["shape","point","check"],"variants":{"outline":"ed28"}},"circle-half-2":{"name":"circle-half-2","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"eff3"}},"circle-half-vertical":{"name":"circle-half-vertical","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"ee3e"}},"circle-half":{"name":"circle-half","category":"Shapes","tags":["shape","split","slash"],"variants":{"outline":"ee3f"}},"circle-key":{"name":"circle-key","category":"","tags":["shape","lock","door","acsses"],"variants":{"outline":"f633","filled":"f706"}},"circle-letter-a":{"name":"circle-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f441","filled":"fe7f"}},"circle-letter-b":{"name":"circle-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f442","filled":"fe7e"}},"circle-letter-c":{"name":"circle-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f443","filled":"fe7d"}},"circle-letter-d":{"name":"circle-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f444","filled":"fe7c"}},"circle-letter-e":{"name":"circle-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f445","filled":"fe7b"}},"circle-letter-f":{"name":"circle-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f446","filled":"fe7a"}},"circle-letter-g":{"name":"circle-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f447","filled":"fe79"}},"circle-letter-h":{"name":"circle-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f448","filled":"fe78"}},"circle-letter-i":{"name":"circle-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f449","filled":"fe77"}},"circle-letter-j":{"name":"circle-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44a","filled":"fe76"}},"circle-letter-k":{"name":"circle-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44b","filled":"fe75"}},"circle-letter-l":{"name":"circle-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44c","filled":"fe74"}},"circle-letter-m":{"name":"circle-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44d","filled":"fe73"}},"circle-letter-n":{"name":"circle-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44e","filled":"fe72"}},"circle-letter-o":{"name":"circle-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f44f","filled":"fe71"}},"circle-letter-p":{"name":"circle-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f450","filled":"fe70"}},"circle-letter-q":{"name":"circle-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f451","filled":"fe6f"}},"circle-letter-r":{"name":"circle-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f452","filled":"fe6e"}},"circle-letter-s":{"name":"circle-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f453","filled":"fe6d"}},"circle-letter-t":{"name":"circle-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f454","filled":"fe6c"}},"circle-letter-u":{"name":"circle-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f455","filled":"fe6b"}},"circle-letter-v":{"name":"circle-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4ad","filled":"fe6a"}},"circle-letter-w":{"name":"circle-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f456","filled":"fe69"}},"circle-letter-x":{"name":"circle-letter-x","category":"Letters","tags":["cancel","no"],"variants":{"outline":"f4ae","filled":"fe68"}},"circle-letter-y":{"name":"circle-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f457","filled":"fe67"}},"circle-letter-z":{"name":"circle-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f458","filled":"fe66"}},"circle-minus-2":{"name":"circle-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8c"}},"circle-minus":{"name":"circle-minus","category":"Shapes","tags":["remove","delete"],"variants":{"outline":"ea68"}},"circle-number-0":{"name":"circle-number-0","category":"Numbers","tags":["zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee34","filled":"f72f"}},"circle-number-1":{"name":"circle-number-1","category":"Numbers","tags":["one","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee35","filled":"f730"}},"circle-number-2":{"name":"circle-number-2","category":"Numbers","tags":["two","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee36","filled":"f731"}},"circle-number-3":{"name":"circle-number-3","category":"Numbers","tags":["three","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee37","filled":"f732"}},"circle-number-4":{"name":"circle-number-4","category":"Numbers","tags":["four","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee38","filled":"f733"}},"circle-number-5":{"name":"circle-number-5","category":"Numbers","tags":["five","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee39","filled":"f734"}},"circle-number-6":{"name":"circle-number-6","category":"Numbers","tags":["six","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3a","filled":"f735"}},"circle-number-7":{"name":"circle-number-7","category":"Numbers","tags":["seven","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3b","filled":"f736"}},"circle-number-8":{"name":"circle-number-8","category":"Numbers","tags":["eight","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3c","filled":"f737"}},"circle-number-9":{"name":"circle-number-9","category":"Numbers","tags":["nine","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"ee3d","filled":"f738"}},"circle-off":{"name":"circle-off","category":"Shapes","tags":["off","zero"],"variants":{"outline":"ee40"}},"circle-percentage":{"name":"circle-percentage","category":"","tags":[],"variants":{"outline":"fd7b","filled":"fed5"}},"circle-plus-2":{"name":"circle-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8d"}},"circle-plus":{"name":"circle-plus","category":"Shapes","tags":["add","create","new"],"variants":{"outline":"ea69","filled":"fef9"}},"circle-rectangle-off":{"name":"circle-rectangle-off","category":"Shapes","tags":["shape","geometric","geometry","figure"],"variants":{"outline":"f0cd"}},"circle-rectangle":{"name":"circle-rectangle","category":"Shapes","tags":["shape","geometric","geometry","figure"],"variants":{"outline":"f010","filled":"ff63"}},"circle-square":{"name":"circle-square","category":"Shapes","tags":["shape","spot","math"],"variants":{"outline":"ece4"}},"circle-triangle":{"name":"circle-triangle","category":"","tags":["arrow","down","shape","geometry"],"variants":{"outline":"f011"}},"circle-x":{"name":"circle-x","category":"Shapes","tags":["cancel","no"],"variants":{"outline":"ea6a","filled":"f739"}},"circle":{"name":"circle","category":"Shapes","tags":["off","zero"],"variants":{"outline":"ea6b","filled":"f671"}},"circles-relation":{"name":"circles-relation","category":"","tags":["connection","link","shape","hyperlink"],"variants":{"outline":"f4c3"}},"circles":{"name":"circles","category":"Shapes","tags":["shape","marbles","balls","juggle","spots"],"variants":{"outline":"ece5","filled":"f672"}},"circuit-ammeter":{"name":"circuit-ammeter","category":"Electrical","tags":["diagram","electric","electricity"],"variants":{"outline":"f271"}},"circuit-battery":{"name":"circuit-battery","category":"Electrical","tags":["diagram","electric","electricity","power"],"variants":{"outline":"f272"}},"circuit-bulb":{"name":"circuit-bulb","category":"Electrical","tags":["lamp","light","electric","electrical"],"variants":{"outline":"f273"}},"circuit-capacitor-polarized":{"name":"circuit-capacitor-polarized","category":"Electrical","tags":["diagram","electric","electrity"],"variants":{"outline":"f274"}},"circuit-capacitor":{"name":"circuit-capacitor","category":"Electrical","tags":["diagram","electric","electrity"],"variants":{"outline":"f275"}},"circuit-cell-plus":{"name":"circuit-cell-plus","category":"Electrical","tags":["electirc","diagram","electrity","battery","power"],"variants":{"outline":"f276"}},"circuit-cell":{"name":"circuit-cell","category":"Electrical","tags":["electirc","diagram","electrity","battery","power"],"variants":{"outline":"f277"}},"circuit-changeover":{"name":"circuit-changeover","category":"Electrical","tags":["electirc","diagram","electrity","change"],"variants":{"outline":"f278"}},"circuit-diode-zener":{"name":"circuit-diode-zener","category":"Electrical","tags":["electirc","electrity","diagram","digital"],"variants":{"outline":"f279"}},"circuit-diode":{"name":"circuit-diode","category":"Electrical","tags":["diagram","electic","electronic","led"],"variants":{"outline":"f27a"}},"circuit-ground-digital":{"name":"circuit-ground-digital","category":"Electrical","tags":["electirc","electrity","diagram"],"variants":{"outline":"f27b"}},"circuit-ground":{"name":"circuit-ground","category":"Electrical","tags":["electirc","electrity","diagram"],"variants":{"outline":"f27c"}},"circuit-inductor":{"name":"circuit-inductor","category":"Electrical","tags":["electirc","electrity","diagram","coil"],"variants":{"outline":"f27d"}},"circuit-motor":{"name":"circuit-motor","category":"Electrical","tags":["circuity","diagram","electric","electricy"],"variants":{"outline":"f27e"}},"circuit-pushbutton":{"name":"circuit-pushbutton","category":"Electrical","tags":["diagram","electric","electricy","open"],"variants":{"outline":"f27f"}},"circuit-resistor":{"name":"circuit-resistor","category":"Electrical","tags":["diagram","electric","electricy","nema"],"variants":{"outline":"f280"}},"circuit-switch-closed":{"name":"circuit-switch-closed","category":"Electrical","tags":["diagram","electric","electricy","locked"],"variants":{"outline":"f281"}},"circuit-switch-open":{"name":"circuit-switch-open","category":"Electrical","tags":["diagram","electric","electricy","opened"],"variants":{"outline":"f282"}},"circuit-voltmeter":{"name":"circuit-voltmeter","category":"Electrical","tags":["diagram","electric","electricy","component"],"variants":{"outline":"f283"}},"clear-all":{"name":"clear-all","category":"","tags":["app","clear","all","emails","phone"],"variants":{"outline":"ee41"}},"clear-formatting":{"name":"clear-formatting","category":"Text","tags":["text","return","default"],"variants":{"outline":"ebe5"}},"click":{"name":"click","category":"","tags":["select","cursor"],"variants":{"outline":"ebbc"}},"cliff-jumping":{"name":"cliff-jumping","category":"Sport","tags":["rock","fall","movement","motion","trampoline","height"],"variants":{"outline":"fefc"}},"clipboard-check":{"name":"clipboard-check","category":"Document","tags":["copy","yes"],"variants":{"outline":"ea6c"}},"clipboard-copy":{"name":"clipboard-copy","category":"Document","tags":["duplicate","paste","document","task"],"variants":{"outline":"f299"}},"clipboard-data":{"name":"clipboard-data","category":"Document","tags":["document","report","file","list","analytics"],"variants":{"outline":"f563"}},"clipboard-heart":{"name":"clipboard-heart","category":"Document","tags":["medical","health","healthcare","medicine","hospital"],"variants":{"outline":"f34e"}},"clipboard-list":{"name":"clipboard-list","category":"Document","tags":["copy","items"],"variants":{"outline":"ea6d"}},"clipboard-off":{"name":"clipboard-off","category":"Document","tags":["copy","clipboard","paste","document","file","paper","note","text","page","sheet","blank"],"variants":{"outline":"f0ce"}},"clipboard-plus":{"name":"clipboard-plus","category":"Document","tags":["document","file","add","new"],"variants":{"outline":"efb2"}},"clipboard-smile":{"name":"clipboard-smile","category":"","tags":[],"variants":{"outline":"fd9a"}},"clipboard-text":{"name":"clipboard-text","category":"Document","tags":["document","file","report","page","note"],"variants":{"outline":"f089"}},"clipboard-typography":{"name":"clipboard-typography","category":"Document","tags":["document","list","raport","paper"],"variants":{"outline":"f34f"}},"clipboard-x":{"name":"clipboard-x","category":"Document","tags":["copy","no"],"variants":{"outline":"ea6e"}},"clipboard":{"name":"clipboard","category":"Document","tags":["copy","clipboard","paste","document","file","paper","note","text","page","sheet","blank"],"variants":{"outline":"ea6f"}},"clock-12":{"name":"clock-12","category":"System","tags":["time","hour","watch","timepiece","twelve-hour","am/pm","noon","midday","daytime","clock-face"],"variants":{"outline":"fc56"}},"clock-2":{"name":"clock-2","category":"System","tags":["time","watch","timer","alarm","date","hour","schedule"],"variants":{"outline":"f099"}},"clock-24":{"name":"clock-24","category":"System","tags":["time","hour","watch","timepiece","twenty-four-hour","24-hour","military","clock-face","round-clock","day-night"],"variants":{"outline":"fc57"}},"clock-bitcoin":{"name":"clock-bitcoin","category":"","tags":[],"variants":{"outline":"ff3f"}},"clock-bolt":{"name":"clock-bolt","category":"System","tags":[],"variants":{"outline":"f844"}},"clock-cancel":{"name":"clock-cancel","category":"System","tags":["time","delete","remove","close","alarm"],"variants":{"outline":"f546"}},"clock-check":{"name":"clock-check","category":"System","tags":[],"variants":{"outline":"f7c1"}},"clock-code":{"name":"clock-code","category":"System","tags":[],"variants":{"outline":"f845"}},"clock-cog":{"name":"clock-cog","category":"System","tags":[],"variants":{"outline":"f7c2"}},"clock-dollar":{"name":"clock-dollar","category":"System","tags":[],"variants":{"outline":"f846"}},"clock-down":{"name":"clock-down","category":"System","tags":[],"variants":{"outline":"f7c3"}},"clock-edit":{"name":"clock-edit","category":"System","tags":["time","edit","create","alarm"],"variants":{"outline":"f547"}},"clock-exclamation":{"name":"clock-exclamation","category":"System","tags":[],"variants":{"outline":"f847"}},"clock-heart":{"name":"clock-heart","category":"System","tags":[],"variants":{"outline":"f7c4"}},"clock-hour-1":{"name":"clock-hour-1","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f313","filled":"fe65"}},"clock-hour-10":{"name":"clock-hour-10","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f314","filled":"fe64"}},"clock-hour-11":{"name":"clock-hour-11","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f315","filled":"fe63"}},"clock-hour-12":{"name":"clock-hour-12","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f316","filled":"fe62"}},"clock-hour-2":{"name":"clock-hour-2","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f317","filled":"fe61"}},"clock-hour-3":{"name":"clock-hour-3","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f318","filled":"fe60"}},"clock-hour-4":{"name":"clock-hour-4","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f319","filled":"fe5f"}},"clock-hour-5":{"name":"clock-hour-5","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31a","filled":"fe5e"}},"clock-hour-6":{"name":"clock-hour-6","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31b","filled":"fe5d"}},"clock-hour-7":{"name":"clock-hour-7","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31c","filled":"fe5c"}},"clock-hour-8":{"name":"clock-hour-8","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31d","filled":"fe5b"}},"clock-hour-9":{"name":"clock-hour-9","category":"System","tags":["time","watch","timer","alarm","minutes","seconds"],"variants":{"outline":"f31e","filled":"fe5a"}},"clock-minus":{"name":"clock-minus","category":"System","tags":[],"variants":{"outline":"f848"}},"clock-off":{"name":"clock-off","category":"System","tags":["time","watch","alarm"],"variants":{"outline":"f0cf"}},"clock-pause":{"name":"clock-pause","category":"System","tags":["time","stop","pause","wait","rest","off"],"variants":{"outline":"f548"}},"clock-pin":{"name":"clock-pin","category":"System","tags":[],"variants":{"outline":"f849"}},"clock-play":{"name":"clock-play","category":"System","tags":["time","hour","work","alarm","on"],"variants":{"outline":"f549"}},"clock-plus":{"name":"clock-plus","category":"System","tags":[],"variants":{"outline":"f7c5"}},"clock-question":{"name":"clock-question","category":"System","tags":[],"variants":{"outline":"f7c6"}},"clock-record":{"name":"clock-record","category":"System","tags":["time","watch","alarm","recording"],"variants":{"outline":"f54a"}},"clock-search":{"name":"clock-search","category":"System","tags":[],"variants":{"outline":"f7c7"}},"clock-share":{"name":"clock-share","category":"System","tags":[],"variants":{"outline":"f84a"}},"clock-shield":{"name":"clock-shield","category":"System","tags":[],"variants":{"outline":"f7c8"}},"clock-star":{"name":"clock-star","category":"System","tags":[],"variants":{"outline":"f7c9"}},"clock-stop":{"name":"clock-stop","category":"System","tags":["time","watch","alarm","pause","off"],"variants":{"outline":"f54b"}},"clock-up":{"name":"clock-up","category":"System","tags":[],"variants":{"outline":"f7ca"}},"clock-x":{"name":"clock-x","category":"System","tags":[],"variants":{"outline":"f7cb"}},"clock":{"name":"clock","category":"System","tags":["time","watch","alarm"],"variants":{"outline":"ea70","filled":"f73a"}},"clothes-rack-off":{"name":"clothes-rack-off","category":"","tags":["hanger","furniture","fashion","clothing","stand"],"variants":{"outline":"f3d6"}},"clothes-rack":{"name":"clothes-rack","category":"","tags":["hanger","furniture","fashion","clothing","stand"],"variants":{"outline":"f285"}},"cloud-bitcoin":{"name":"cloud-bitcoin","category":"","tags":[],"variants":{"outline":"ff3e"}},"cloud-bolt":{"name":"cloud-bolt","category":"Weather","tags":[],"variants":{"outline":"f84b"}},"cloud-cancel":{"name":"cloud-cancel","category":"Weather","tags":[],"variants":{"outline":"f84c"}},"cloud-check":{"name":"cloud-check","category":"Weather","tags":[],"variants":{"outline":"f84d"}},"cloud-code":{"name":"cloud-code","category":"Weather","tags":[],"variants":{"outline":"f84e"}},"cloud-cog":{"name":"cloud-cog","category":"Weather","tags":[],"variants":{"outline":"f84f"}},"cloud-computing":{"name":"cloud-computing","category":"Computers","tags":["server","network","data","storage","share","internet"],"variants":{"outline":"f1d0"}},"cloud-data-connection":{"name":"cloud-data-connection","category":"Computers","tags":["media","network","storage","access"],"variants":{"outline":"f1d1"}},"cloud-dollar":{"name":"cloud-dollar","category":"Weather","tags":[],"variants":{"outline":"f850"}},"cloud-down":{"name":"cloud-down","category":"Weather","tags":[],"variants":{"outline":"f851"}},"cloud-download":{"name":"cloud-download","category":"System","tags":["files"],"variants":{"outline":"ea71"}},"cloud-exclamation":{"name":"cloud-exclamation","category":"Weather","tags":[],"variants":{"outline":"f852"}},"cloud-fog":{"name":"cloud-fog","category":"Weather","tags":["weather","online"],"variants":{"outline":"ecd9"}},"cloud-heart":{"name":"cloud-heart","category":"Weather","tags":[],"variants":{"outline":"f853"}},"cloud-lock-open":{"name":"cloud-lock-open","category":"System","tags":["unlock","password","private","pass"],"variants":{"outline":"efda"}},"cloud-lock":{"name":"cloud-lock","category":"System","tags":["security","secure","locked","password"],"variants":{"outline":"efdb"}},"cloud-minus":{"name":"cloud-minus","category":"Weather","tags":[],"variants":{"outline":"f854"}},"cloud-network":{"name":"cloud-network","category":"","tags":[],"variants":{"outline":"fc78"}},"cloud-off":{"name":"cloud-off","category":"Weather","tags":["weather","online"],"variants":{"outline":"ed3e"}},"cloud-pause":{"name":"cloud-pause","category":"Weather","tags":[],"variants":{"outline":"f855"}},"cloud-pin":{"name":"cloud-pin","category":"Weather","tags":[],"variants":{"outline":"f856"}},"cloud-plus":{"name":"cloud-plus","category":"Weather","tags":[],"variants":{"outline":"f857"}},"cloud-question":{"name":"cloud-question","category":"Weather","tags":[],"variants":{"outline":"f858"}},"cloud-rain":{"name":"cloud-rain","category":"Weather","tags":["weather","dry"],"variants":{"outline":"ea72"}},"cloud-search":{"name":"cloud-search","category":"Weather","tags":[],"variants":{"outline":"f859"}},"cloud-share":{"name":"cloud-share","category":"Weather","tags":[],"variants":{"outline":"f85a"}},"cloud-snow":{"name":"cloud-snow","category":"Weather","tags":["weather","blizzard"],"variants":{"outline":"ea73"}},"cloud-star":{"name":"cloud-star","category":"Weather","tags":[],"variants":{"outline":"f85b"}},"cloud-storm":{"name":"cloud-storm","category":"Weather","tags":["weather","lightning"],"variants":{"outline":"ea74"}},"cloud-up":{"name":"cloud-up","category":"Weather","tags":[],"variants":{"outline":"f85c"}},"cloud-upload":{"name":"cloud-upload","category":"System","tags":["files"],"variants":{"outline":"ea75"}},"cloud-x":{"name":"cloud-x","category":"Weather","tags":[],"variants":{"outline":"f85d"}},"cloud":{"name":"cloud","category":"Weather","tags":["weather","online"],"variants":{"outline":"ea76","filled":"f673"}},"clover-2":{"name":"clover-2","category":"Nature","tags":["luck","leaf","patrick","irleand","irish"],"variants":{"outline":"f21e"}},"clover":{"name":"clover","category":"Nature","tags":["luck","leaf","patrick","irleand","irish"],"variants":{"outline":"f1ea"}},"clubs":{"name":"clubs","category":"Shapes","tags":["card","game","casino","gambling","poker"],"variants":{"outline":"eff4","filled":"f674"}},"code-asterisk":{"name":"code-asterisk","category":"Text","tags":["coding","programming","html"],"variants":{"outline":"f312"}},"code-circle-2":{"name":"code-circle-2","category":"Text","tags":["coding","programming","development","shape","technology"],"variants":{"outline":"f4fe","filled":"fed4"}},"code-circle":{"name":"code-circle","category":"Text","tags":["coding","programming","development","shape","technology"],"variants":{"outline":"f4ff","filled":"fed3"}},"code-dots":{"name":"code-dots","category":"Text","tags":["program","script","programmer"],"variants":{"outline":"f61a"}},"code-minus":{"name":"code-minus","category":"Text","tags":["remove","delete","insert","braces"],"variants":{"outline":"ee42"}},"code-off":{"name":"code-off","category":"Text","tags":["brackets","source","programming","command"],"variants":{"outline":"f0d0"}},"code-plus":{"name":"code-plus","category":"Text","tags":["add","insert","braces"],"variants":{"outline":"ee43"}},"code":{"name":"code","category":"Text","tags":["brackets","source","programming","command"],"variants":{"outline":"ea77"}},"coffee-off":{"name":"coffee-off","category":"Food","tags":["espresso","hot","cup","latte","cafe","drink"],"variants":{"outline":"f106"}},"coffee":{"name":"coffee","category":"Food","tags":["espresso","hot","cup","latte","cafe","drink"],"variants":{"outline":"ef0e"}},"coffin":{"name":"coffin","category":"","tags":["halloween","death","scary","horror","cementry"],"variants":{"outline":"f579"}},"coin-bitcoin":{"name":"coin-bitcoin","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2be","filled":"fd06"}},"coin-euro":{"name":"coin-euro","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2bf","filled":"fd07"}},"coin-monero":{"name":"coin-monero","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f4a0","filled":"fd09"}},"coin-off":{"name":"coin-off","category":"E-commerce","tags":["money","earn","salary","change","dollar"],"variants":{"outline":"f0d1"}},"coin-pound":{"name":"coin-pound","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c0","filled":"fd0a"}},"coin-rupee":{"name":"coin-rupee","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c1","filled":"fd0b"}},"coin-taka":{"name":"coin-taka","category":"","tags":[],"variants":{"outline":"fd0d","filled":"fd0c"}},"coin-yen":{"name":"coin-yen","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c2","filled":"fd0e"}},"coin-yuan":{"name":"coin-yuan","category":"E-commerce","tags":["money","earn","salary","change"],"variants":{"outline":"f2c3","filled":"fd0f"}},"coin":{"name":"coin","category":"E-commerce","tags":["money","earn","salary","change","dollar"],"variants":{"outline":"eb82","filled":"fd08"}},"coins":{"name":"coins","category":"E-commerce","tags":["money","cash","finance","currency","dollar"],"variants":{"outline":"f65d"}},"color-filter":{"name":"color-filter","category":"Design","tags":["hue","brightness","effects","sotring","tools"],"variants":{"outline":"f5a8"}},"color-picker-off":{"name":"color-picker-off","category":"Design","tags":["timbre","saturation","paint","image","brush","choice","selection","sample"],"variants":{"outline":"f0d2"}},"color-picker":{"name":"color-picker","category":"Design","tags":["timbre","saturation","paint","image","brush","choice","selection","sample"],"variants":{"outline":"ebe6"}},"color-swatch-off":{"name":"color-swatch-off","category":"Design","tags":["sample","choice","selection"],"variants":{"outline":"f0d3"}},"color-swatch":{"name":"color-swatch","category":"Design","tags":["sample","choice","selection"],"variants":{"outline":"eb61"}},"column-insert-left":{"name":"column-insert-left","category":"Database","tags":["database","table","cells","arrow"],"variants":{"outline":"ee44"}},"column-insert-right":{"name":"column-insert-right","category":"Database","tags":["database","table","cells","arrow"],"variants":{"outline":"ee45"}},"column-remove":{"name":"column-remove","category":"Database","tags":[],"variants":{"outline":"faf4"}},"columns-1":{"name":"columns-1","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d4"}},"columns-2":{"name":"columns-2","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d5"}},"columns-3":{"name":"columns-3","category":"Text","tags":["layout","grid","design","arranegment"],"variants":{"outline":"f6d6"}},"columns-off":{"name":"columns-off","category":"Text","tags":["text","gap","table"],"variants":{"outline":"f0d4"}},"columns":{"name":"columns","category":"Text","tags":["text","gap","table"],"variants":{"outline":"eb83"}},"comet":{"name":"comet","category":"Weather","tags":["space","universe","star","orb","glow","night"],"variants":{"outline":"ec76"}},"command-off":{"name":"command-off","category":"Symbols","tags":["apple","key","keyboard","cmd"],"variants":{"outline":"f3d7"}},"command":{"name":"command","category":"Symbols","tags":["apple","key","keyboard","cmd"],"variants":{"outline":"ea78"}},"compass-off":{"name":"compass-off","category":"Map","tags":["navigation","safari","travel","direction","discover"],"variants":{"outline":"f0d5"}},"compass":{"name":"compass","category":"Map","tags":["navigation","safari","travel","direction","discover"],"variants":{"outline":"ea79","filled":"fd10"}},"components-off":{"name":"components-off","category":"Design","tags":["hardware","technology","electronic","computer","design","ux","figma"],"variants":{"outline":"f0d6"}},"components":{"name":"components","category":"Design","tags":["hardware","technology","electronic","computer","design","ux","figma"],"variants":{"outline":"efa5"}},"cone-2":{"name":"cone-2","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"efdc","filled":"fe59"}},"cone-off":{"name":"cone-off","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"f3d8"}},"cone-plus":{"name":"cone-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa94"}},"cone":{"name":"cone","category":"Shapes","tags":["geometry","math","object","shape"],"variants":{"outline":"efdd","filled":"fe58"}},"confetti-off":{"name":"confetti-off","category":"","tags":["party","celebrate","streamers","paper","parade","wedding","celebration"],"variants":{"outline":"f3d9"}},"confetti":{"name":"confetti","category":"","tags":["party","celebrate","streamers","paper","parade","wedding","celebration"],"variants":{"outline":"ee46"}},"confucius":{"name":"confucius","category":"Symbols","tags":["culture","religion","philosophy","tradition"],"variants":{"outline":"f58a"}},"container-off":{"name":"container-off","category":"Design","tags":["element","html","block","store","inside"],"variants":{"outline":"f107"}},"container":{"name":"container","category":"Design","tags":["element","html","block","store","inside"],"variants":{"outline":"ee47"}},"contract":{"name":"contract","category":"","tags":[],"variants":{"outline":"fefb"}},"contrast-2-off":{"name":"contrast-2-off","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"f3da"}},"contrast-2":{"name":"contrast-2","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"efc7","filled":"fe57"}},"contrast-off":{"name":"contrast-off","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"f3db"}},"contrast":{"name":"contrast","category":"Photography","tags":["edit","paint","photo"],"variants":{"outline":"ec4e","filled":"fe56"}},"cooker":{"name":"cooker","category":"Food","tags":["kitchen","cook","oven","chef"],"variants":{"outline":"f57a"}},"cookie-man":{"name":"cookie-man","category":"","tags":[],"variants":{"outline":"fdb2","filled":"fe55"}},"cookie-off":{"name":"cookie-off","category":"Food","tags":["food","sweet","cooking","snack","internet","privacy"],"variants":{"outline":"f0d7"}},"cookie":{"name":"cookie","category":"","tags":[],"variants":{"outline":"fdb1","filled":"fe54"}},"copy-check":{"name":"copy-check","category":"","tags":[],"variants":{"outline":"fdb0","filled":"fe53"}},"copy-minus":{"name":"copy-minus","category":"","tags":[],"variants":{"outline":"fdaf","filled":"fe52"}},"copy-off":{"name":"copy-off","category":"Text","tags":["clipboard","clone","duplicate"],"variants":{"outline":"f0d8"}},"copy-plus":{"name":"copy-plus","category":"","tags":[],"variants":{"outline":"fdae","filled":"fe51"}},"copy-x":{"name":"copy-x","category":"","tags":[],"variants":{"outline":"fdad","filled":"fe50"}},"copy":{"name":"copy","category":"Text","tags":["clipboard","clone","duplicate"],"variants":{"outline":"ea7a"}},"copyleft-off":{"name":"copyleft-off","category":"Symbols","tags":["licence","license"],"variants":{"outline":"f0d9"}},"copyleft":{"name":"copyleft","category":"Symbols","tags":["licence","license"],"variants":{"outline":"ec3d","filled":"f73b"}},"copyright-off":{"name":"copyright-off","category":"Symbols","tags":["licence","license"],"variants":{"outline":"f0da"}},"copyright":{"name":"copyright","category":"Symbols","tags":["licence","license"],"variants":{"outline":"ea7b","filled":"f73c"}},"corner-down-left-double":{"name":"corner-down-left-double","category":"Arrows","tags":["arrow","previous","back","return","below","point"],"variants":{"outline":"ee48"}},"corner-down-left":{"name":"corner-down-left","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7c"}},"corner-down-right-double":{"name":"corner-down-right-double","category":"Arrows","tags":["arrow","next","below","forward","point"],"variants":{"outline":"ee49"}},"corner-down-right":{"name":"corner-down-right","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7d"}},"corner-left-down-double":{"name":"corner-left-down-double","category":"Arrows","tags":["arrow","point","below","bottom"],"variants":{"outline":"ee4a"}},"corner-left-down":{"name":"corner-left-down","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7e"}},"corner-left-up-double":{"name":"corner-left-up-double","category":"Arrows","tags":["arrow","point","above","top"],"variants":{"outline":"ee4b"}},"corner-left-up":{"name":"corner-left-up","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea7f"}},"corner-right-down-double":{"name":"corner-right-down-double","category":"Arrows","tags":["arrow","point","below","bottom"],"variants":{"outline":"ee4c"}},"corner-right-down":{"name":"corner-right-down","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea80"}},"corner-right-up-double":{"name":"corner-right-up-double","category":"Arrows","tags":["arrow","point","above","top"],"variants":{"outline":"ee4d"}},"corner-right-up":{"name":"corner-right-up","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea81"}},"corner-up-left-double":{"name":"corner-up-left-double","category":"Arrows","tags":["arrow","point","side","previous","back","return"],"variants":{"outline":"ee4e"}},"corner-up-left":{"name":"corner-up-left","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea82"}},"corner-up-right-double":{"name":"corner-up-right-double","category":"Arrows","tags":["arrow","next","above","forward","point"],"variants":{"outline":"ee4f"}},"corner-up-right":{"name":"corner-up-right","category":"Arrows","tags":["move","arrow"],"variants":{"outline":"ea83"}},"cpu-2":{"name":"cpu-2","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"f075"}},"cpu-off":{"name":"cpu-off","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"f108"}},"cpu":{"name":"cpu","category":"Devices","tags":["processor","computer","chip","hardware","technology","electronic"],"variants":{"outline":"ef8e"}},"crane-off":{"name":"crane-off","category":"Vehicles","tags":["construction","building","machine","lifting"],"variants":{"outline":"f109"}},"crane":{"name":"crane","category":"Vehicles","tags":["construction","building","machine","lifting"],"variants":{"outline":"ef27"}},"creative-commons-by":{"name":"creative-commons-by","category":"System","tags":["licence","license"],"variants":{"outline":"f21f"}},"creative-commons-nc":{"name":"creative-commons-nc","category":"System","tags":["licence","license"],"variants":{"outline":"f220"}},"creative-commons-nd":{"name":"creative-commons-nd","category":"System","tags":["licence","license"],"variants":{"outline":"f221"}},"creative-commons-off":{"name":"creative-commons-off","category":"System","tags":["licence","license"],"variants":{"outline":"f10a"}},"creative-commons-sa":{"name":"creative-commons-sa","category":"System","tags":["licence","license"],"variants":{"outline":"f222"}},"creative-commons-zero":{"name":"creative-commons-zero","category":"System","tags":["licence","license"],"variants":{"outline":"f223"}},"creative-commons":{"name":"creative-commons","category":"System","tags":["licence","license"],"variants":{"outline":"efb3"}},"credit-card-off":{"name":"credit-card-off","category":"E-commerce","tags":["money","purchase","payment","cc"],"variants":{"outline":"ed11"}},"credit-card-pay":{"name":"credit-card-pay","category":"","tags":["payment-card","credit-pay","card-payment","transaction","credit-transaction","purchase","buy","payment","credit","card"],"variants":{"outline":"fd32"}},"credit-card-refund":{"name":"credit-card-refund","category":"","tags":["refund-card","credit-refund","card-refund","transaction","credit-transaction","return","money-back","credit","refund","card"],"variants":{"outline":"fd33"}},"credit-card":{"name":"credit-card","category":"E-commerce","tags":["money","purchase","payment","cc"],"variants":{"outline":"ea84","filled":"fd11"}},"cricket":{"name":"cricket","category":"Sport","tags":["ball","game","sport"],"variants":{"outline":"f09a"}},"crop-1-1":{"name":"crop-1-1","category":"Design","tags":["square-crop","aspect-ratio-1-1","equal-proportion","image-square","crop-square","box-crop","square-frame","uniform-crop","balanced-crop","equal-crop"],"variants":{"outline":"fd50","filled":"fe4f"}},"crop-16-9":{"name":"crop-16-9","category":"Design","tags":["wide-crop","aspect-ratio-16-9","landscape-crop","wide-screen","video-crop","16-by-9","wide-format","cinematic-crop","panorama","landscape-aspect"],"variants":{"outline":"fd51","filled":"fe4e"}},"crop-3-2":{"name":"crop-3-2","category":"Design","tags":["portrait-crop","aspect-ratio-3-2","vertical-crop","portrait-mode","tall-crop","3-by-2","portrait-format","vertical-aspect","vertical-frame","portrait"],"variants":{"outline":"fd52","filled":"fe4d"}},"crop-5-4":{"name":"crop-5-4","category":"Design","tags":["custom-crop","aspect-ratio-5-4","fixed-crop","image-format","5-by-4","customized-crop","fixed-aspect","dimensional-crop","specific-crop","custom-aspect"],"variants":{"outline":"fd53","filled":"fe4c"}},"crop-7-5":{"name":"crop-7-5","category":"Design","tags":["custom-crop","aspect-ratio-7-5","fixed-crop","image-format","7-by-5","customized-crop","fixed-aspect","dimensional-crop","specific-crop","custom-aspect"],"variants":{"outline":"fd54","filled":"fe4b"}},"crop-landscape":{"name":"crop-landscape","category":"Design","tags":["landscape-crop","aspect-ratio-landscape","wide-crop","landscape-mode","horizontal-crop","landscape-format","wide-aspect","horizontal-frame","landscape"],"variants":{"outline":"fd55","filled":"fe4a"}},"crop-portrait":{"name":"crop-portrait","category":"Design","tags":["portrait-crop","aspect-ratio-portrait","vertical-crop","portrait-mode","tall-crop","portrait-format","vertical-aspect","vertical-frame","portrait"],"variants":{"outline":"fd56","filled":"fe49"}},"crop":{"name":"crop","category":"Design","tags":["photo","image"],"variants":{"outline":"ea85"}},"cross-off":{"name":"cross-off","category":"Symbols","tags":["prayer","church","catholic","jezus","religion"],"variants":{"outline":"f10b"}},"cross":{"name":"cross","category":"Symbols","tags":["prayer","church","catholic","jezus","religion"],"variants":{"outline":"ef8f","filled":"f675"}},"crosshair":{"name":"crosshair","category":"","tags":["reticle","tag","tracer","measurement","target"],"variants":{"outline":"ec3e"}},"crown-off":{"name":"crown-off","category":"","tags":["symbol","queen","king","prince","princess","dynasty","royalty"],"variants":{"outline":"ee50"}},"crown":{"name":"crown","category":"","tags":["symbol","queen","king","prince","princess","dynasty","royalty"],"variants":{"outline":"ed12"}},"crutches-off":{"name":"crutches-off","category":"Health","tags":["hospital","medical","disability","health","leg"],"variants":{"outline":"f10c"}},"crutches":{"name":"crutches","category":"Health","tags":["hospital","medical","disability","health","leg"],"variants":{"outline":"ef5b"}},"crystal-ball":{"name":"crystal-ball","category":"","tags":["magic","fortune","christmas","witch","future"],"variants":{"outline":"f57b"}},"csv":{"name":"csv","category":"Extensions","tags":["file","document","format","type","folder"],"variants":{"outline":"f791"}},"cube-3d-sphere-off":{"name":"cube-3d-sphere-off","category":"","tags":["printing","vector","shape"],"variants":{"outline":"f3b5"}},"cube-3d-sphere":{"name":"cube-3d-sphere","category":"","tags":["printing","vector","shape"],"variants":{"outline":"ecd7"}},"cube-off":{"name":"cube-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa95"}},"cube-plus":{"name":"cube-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa96"}},"cube-send":{"name":"cube-send","category":"","tags":["box","delivery","package","shipping"],"variants":{"outline":"f61b"}},"cube-unfolded":{"name":"cube-unfolded","category":"","tags":["folding","filed","box","unwrapped"],"variants":{"outline":"f61c"}},"cube":{"name":"cube","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa97"}},"cup-off":{"name":"cup-off","category":"Food","tags":["coffee","drink","water","food"],"variants":{"outline":"f10d"}},"cup":{"name":"cup","category":"Food","tags":["coffee","drink","water","food"],"variants":{"outline":"ef28"}},"curling":{"name":"curling","category":"Sport","tags":["game","sport","olympic","winter","snow"],"variants":{"outline":"efc8"}},"curly-loop":{"name":"curly-loop","category":"","tags":["voicemail","power","infinity"],"variants":{"outline":"ecda"}},"currency-afghani":{"name":"currency-afghani","category":"Currencies","tags":["money","coin","cash","commerce","afghanistan"],"variants":{"outline":"f65e"}},"currency-bahraini":{"name":"currency-bahraini","category":"Currencies","tags":["bahraini","bhd","commerce","dinar","money","banknote","pay"],"variants":{"outline":"ee51"}},"currency-baht":{"name":"currency-baht","category":"Currencies","tags":["thb","thai","baht","money","banknote","pay"],"variants":{"outline":"f08a"}},"currency-bitcoin":{"name":"currency-bitcoin","category":"Currencies","tags":["crypto","bitcoin","lightning network","mining","digital","blockchain","p2p","peer","money","banknote","pay"],"variants":{"outline":"ebab"}},"currency-cent":{"name":"currency-cent","category":"Currencies","tags":["cent","coin","money","centavo","penny","banknote","pay"],"variants":{"outline":"ee53"}},"currency-dinar":{"name":"currency-dinar","category":"Currencies","tags":["kwd","dinar","kuwait","money","banknote","pay"],"variants":{"outline":"ee54"}},"currency-dirham":{"name":"currency-dirham","category":"Currencies","tags":["trade","aed","uae","dirham","money","banknote","pay"],"variants":{"outline":"ee55"}},"currency-dogecoin":{"name":"currency-dogecoin","category":"Currencies","tags":["crypto","bitcoin","lightning network","mining","digital","blockchain","p2p","peer","money","banknote","pay"],"variants":{"outline":"ef4b"}},"currency-dollar-australian":{"name":"currency-dollar-australian","category":"Currencies","tags":["dollar","aud","australian","money","banknote","pay"],"variants":{"outline":"ee56"}},"currency-dollar-brunei":{"name":"currency-dollar-brunei","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36c"}},"currency-dollar-canadian":{"name":"currency-dollar-canadian","category":"Currencies","tags":["trade","dollar","cad","canadian","money","banknote","pay"],"variants":{"outline":"ee57"}},"currency-dollar-guyanese":{"name":"currency-dollar-guyanese","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36d"}},"currency-dollar-off":{"name":"currency-dollar-off","category":"Currencies","tags":["american","us","dollar","usd","sign","bucks","usa","money","banknote","pay"],"variants":{"outline":"f3dc"}},"currency-dollar-singapore":{"name":"currency-dollar-singapore","category":"Currencies","tags":["singapore","dollar","exchange","sgd","money","banknote","pay"],"variants":{"outline":"ee58"}},"currency-dollar-zimbabwean":{"name":"currency-dollar-zimbabwean","category":"Currencies","tags":["exchange","buisness","commerce"],"variants":{"outline":"f36e"}},"currency-dollar":{"name":"currency-dollar","category":"Currencies","tags":["american","us","dollar","usd","sign","bucks","usa","money","banknote","pay"],"variants":{"outline":"eb84"}},"currency-dong":{"name":"currency-dong","category":"Currencies","tags":["vietnam","exchange","finance","money","cash"],"variants":{"outline":"f36f"}},"currency-dram":{"name":"currency-dram","category":"Currencies","tags":["exchange","finance","money","cash","armenia"],"variants":{"outline":"f370"}},"currency-ethereum":{"name":"currency-ethereum","category":"Currencies","tags":["ethereum","digital","crypto","ether","blockchain","money","banknote","pay"],"variants":{"outline":"ee59"}},"currency-euro-off":{"name":"currency-euro-off","category":"Currencies","tags":["euro","eur","trade","finance","europe","eu","money","banknote","pay"],"variants":{"outline":"f3dd"}},"currency-euro":{"name":"currency-euro","category":"Currencies","tags":["euro","eur","trade","finance","europe","eu","money","banknote","pay"],"variants":{"outline":"eb85"}},"currency-florin":{"name":"currency-florin","category":"Currencies","tags":[],"variants":{"outline":"faf5"}},"currency-forint":{"name":"currency-forint","category":"Currencies","tags":["huf","hungarian","business","forint","money","banknote","pay"],"variants":{"outline":"ee5a"}},"currency-frank":{"name":"currency-frank","category":"Currencies","tags":["chf","business","swiss","franc","money","banknote","pay"],"variants":{"outline":"ee5b"}},"currency-guarani":{"name":"currency-guarani","category":"Currencies","tags":["exchange","finance","money","cash","paraguay"],"variants":{"outline":"f371"}},"currency-hryvnia":{"name":"currency-hryvnia","category":"Currencies","tags":["exchange","finance","money","cash","ukraine"],"variants":{"outline":"f372"}},"currency-iranian-rial":{"name":"currency-iranian-rial","category":"Currencies","tags":[],"variants":{"outline":"fa58"}},"currency-kip":{"name":"currency-kip","category":"Currencies","tags":["exchange","finance","money","cash","laos"],"variants":{"outline":"f373"}},"currency-krone-czech":{"name":"currency-krone-czech","category":"Currencies","tags":["czech","czk","koruna","money","banknote","pay"],"variants":{"outline":"ee5c"}},"currency-krone-danish":{"name":"currency-krone-danish","category":"Currencies","tags":["krone","dkk","danish","finance","money","banknote","pay"],"variants":{"outline":"ee5d"}},"currency-krone-swedish":{"name":"currency-krone-swedish","category":"Currencies","tags":["krone","kronor","krona","swedish","icelandic","norwegian","estonian","money","banknote","pay"],"variants":{"outline":"ee5e"}},"currency-lari":{"name":"currency-lari","category":"Currencies","tags":["exchange","finance","money","cash","georgia"],"variants":{"outline":"f374"}},"currency-leu":{"name":"currency-leu","category":"Currencies","tags":["leu","loti","lempira","lek","lilangani","money","banknote","pay"],"variants":{"outline":"ee5f"}},"currency-lira":{"name":"currency-lira","category":"Currencies","tags":["lira","trade","turkish","try","money","banknote","pay"],"variants":{"outline":"ee60"}},"currency-litecoin":{"name":"currency-litecoin","category":"Currencies","tags":["litecoin","crypto","segwit","lightning network","blockchain","p2p","peer","transaction","money","banknote","pay"],"variants":{"outline":"ee61"}},"currency-lyd":{"name":"currency-lyd","category":"Currencies","tags":["exchange","finance","money","cash","libya"],"variants":{"outline":"f375"}},"currency-manat":{"name":"currency-manat","category":"Currencies","tags":["exchange","finance","money","cash","azerbaijan"],"variants":{"outline":"f376"}},"currency-monero":{"name":"currency-monero","category":"Currencies","tags":["exchange","finance","money","cash","cryptocurrency"],"variants":{"outline":"f377"}},"currency-naira":{"name":"currency-naira","category":"Currencies","tags":["naira","ngn","nigerian","trade","money","banknote","pay"],"variants":{"outline":"ee62"}},"currency-nano":{"name":"currency-nano","category":"Currencies","tags":["money","nano","crypto","blockchain","pay","p2p","digital"],"variants":{"outline":"f7a6"}},"currency-off":{"name":"currency-off","category":"Currencies","tags":["target","goal","focus","marketing"],"variants":{"outline":"f3de"}},"currency-paanga":{"name":"currency-paanga","category":"Currencies","tags":["exchange","finance","money","cash","tonga"],"variants":{"outline":"f378"}},"currency-peso":{"name":"currency-peso","category":"Currencies","tags":["money","coin","cash","commerce","mexico"],"variants":{"outline":"f65f"}},"currency-pound-off":{"name":"currency-pound-off","category":"Currencies","tags":["gbp","pound","sterling","british","britain","uk","money","banknote","pay"],"variants":{"outline":"f3df"}},"currency-pound":{"name":"currency-pound","category":"Currencies","tags":["gbp","pound","sterling","british","britain","uk","money","banknote","pay"],"variants":{"outline":"ebac"}},"currency-quetzal":{"name":"currency-quetzal","category":"Currencies","tags":["exchange","finance","money","cash","guatemala"],"variants":{"outline":"f379"}},"currency-real":{"name":"currency-real","category":"Currencies","tags":["brl","brazilian","real","finance","money","banknote","pay"],"variants":{"outline":"ee63"}},"currency-renminbi":{"name":"currency-renminbi","category":"Currencies","tags":["renminbi","cny","chinese","yuan","money","banknote","pay"],"variants":{"outline":"ee64"}},"currency-ripple":{"name":"currency-ripple","category":"Currencies","tags":["ripple","xrp","digital","crypto","money","banknote","pay"],"variants":{"outline":"ee65"}},"currency-riyal":{"name":"currency-riyal","category":"Currencies","tags":["riyal","sar","saudi","money","banknote","pay"],"variants":{"outline":"ee66"}},"currency-rubel":{"name":"currency-rubel","category":"Currencies","tags":["rub","russian","ruble","money","banknote","pay"],"variants":{"outline":"ee67"}},"currency-rufiyaa":{"name":"currency-rufiyaa","category":"Currencies","tags":["exchange","finance","money","cash","maldives"],"variants":{"outline":"f37a"}},"currency-rupee-nepalese":{"name":"currency-rupee-nepalese","category":"Currencies","tags":["exchange","finance","money","cash","nepal"],"variants":{"outline":"f37b"}},"currency-rupee":{"name":"currency-rupee","category":"Currencies","tags":["inr","indian","rupee","exchange","money","banknote","pay"],"variants":{"outline":"ebad"}},"currency-shekel":{"name":"currency-shekel","category":"Currencies","tags":["curency","ils","israeli","shekel","money","banknote","pay"],"variants":{"outline":"ee68"}},"currency-solana":{"name":"currency-solana","category":"Currencies","tags":["crypto","bitcoin","mining","digital","cryptocurrency"],"variants":{"outline":"f4a1"}},"currency-som":{"name":"currency-som","category":"Currencies","tags":["exchange","finance","money","cash","kyrgyzstan"],"variants":{"outline":"f37c"}},"currency-taka":{"name":"currency-taka","category":"Currencies","tags":["trade","bangladesh","bdt","taka","money","banknote","pay"],"variants":{"outline":"ee69"}},"currency-tenge":{"name":"currency-tenge","category":"Currencies","tags":["exchange","finance","money","cash","kazakhstan"],"variants":{"outline":"f37d"}},"currency-tugrik":{"name":"currency-tugrik","category":"Currencies","tags":["tgrg","mnt","tugrik","mongolian","money","banknote","pay"],"variants":{"outline":"ee6a"}},"currency-won":{"name":"currency-won","category":"Currencies","tags":["korean","kpw","north","won","money","banknote","pay"],"variants":{"outline":"ee6b"}},"currency-xrp":{"name":"currency-xrp","category":"","tags":["xrp","cryptocurrency","digital-currency","blockchain","ripple","crypto","virtual-currency","xrp-coin","financial","digital-money"],"variants":{"outline":"fd34"}},"currency-yen-off":{"name":"currency-yen-off","category":"Currencies","tags":["japanese","yen","jpy","chinese","money","banknote","pay"],"variants":{"outline":"f3e0"}},"currency-yen":{"name":"currency-yen","category":"Currencies","tags":["japanese","yen","jpy","chinese","money","banknote","pay"],"variants":{"outline":"ebae"}},"currency-yuan":{"name":"currency-yuan","category":"Currencies","tags":["exchange","finance","money","cash","china"],"variants":{"outline":"f29a"}},"currency-zloty":{"name":"currency-zloty","category":"Currencies","tags":["poland","pln","zloty","polish","money","banknote","pay"],"variants":{"outline":"ee6c"}},"currency":{"name":"currency","category":"Currencies","tags":["target","goal","focus","marketing"],"variants":{"outline":"efa6"}},"current-location-off":{"name":"current-location-off","category":"Map","tags":["localization","maps","navigation","pin","target"],"variants":{"outline":"f10e"}},"current-location":{"name":"current-location","category":"Map","tags":["localization","maps","navigation","pin","target"],"variants":{"outline":"ecef"}},"cursor-off":{"name":"cursor-off","category":"","tags":["editor","indicate","position","input","mouse","type"],"variants":{"outline":"f10f"}},"cursor-text":{"name":"cursor-text","category":"Text","tags":["editor","indicate","position","input","mouse","type"],"variants":{"outline":"ee6d"}},"cut":{"name":"cut","category":"Design","tags":["scissors","divide","hairdresser","sharp"],"variants":{"outline":"ea86"}},"cylinder-off":{"name":"cylinder-off","category":"Shapes","tags":["geometry","gas","tube","object","piston"],"variants":{"outline":"fa98"}},"cylinder-plus":{"name":"cylinder-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa99"}},"cylinder":{"name":"cylinder","category":"Shapes","tags":["geometry","gas","tube","object","piston"],"variants":{"outline":"f54c"}},"dashboard-off":{"name":"dashboard-off","category":"System","tags":["home","car"],"variants":{"outline":"f3e1"}},"dashboard":{"name":"dashboard","category":"System","tags":["home","car"],"variants":{"outline":"ea87"}},"database-cog":{"name":"database-cog","category":"Database","tags":[],"variants":{"outline":"fa10"}},"database-dollar":{"name":"database-dollar","category":"Database","tags":[],"variants":{"outline":"fa11"}},"database-edit":{"name":"database-edit","category":"Database","tags":[],"variants":{"outline":"fa12"}},"database-exclamation":{"name":"database-exclamation","category":"Database","tags":[],"variants":{"outline":"fa13"}},"database-export":{"name":"database-export","category":"Database","tags":["data","backup","file","storage","system"],"variants":{"outline":"ee6e"}},"database-heart":{"name":"database-heart","category":"Database","tags":[],"variants":{"outline":"fa14"}},"database-import":{"name":"database-import","category":"Database","tags":["data","file","storage","backup","system"],"variants":{"outline":"ee6f"}},"database-leak":{"name":"database-leak","category":"Database","tags":[],"variants":{"outline":"fa15"}},"database-minus":{"name":"database-minus","category":"Database","tags":[],"variants":{"outline":"fa16"}},"database-off":{"name":"database-off","category":"Database","tags":["storage","data","memory"],"variants":{"outline":"ee70"}},"database-plus":{"name":"database-plus","category":"Database","tags":[],"variants":{"outline":"fa17"}},"database-search":{"name":"database-search","category":"Database","tags":[],"variants":{"outline":"fa18"}},"database-share":{"name":"database-share","category":"Database","tags":[],"variants":{"outline":"fa19"}},"database-smile":{"name":"database-smile","category":"","tags":[],"variants":{"outline":"fd9b"}},"database-star":{"name":"database-star","category":"Database","tags":[],"variants":{"outline":"fa1a"}},"database-x":{"name":"database-x","category":"Database","tags":[],"variants":{"outline":"fa1b"}},"database":{"name":"database","category":"Database","tags":["storage","data","memory"],"variants":{"outline":"ea88"}},"decimal":{"name":"decimal","category":"Math","tags":["point","fraction","numeric","number","mathematics","decimal-point","decimal-system","fractional","math","dot"],"variants":{"outline":"fa26"}},"deer":{"name":"deer","category":"Animals","tags":["animal","christmas","santa","forest"],"variants":{"outline":"f4c5"}},"delta":{"name":"delta","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f53c"}},"dental-broken":{"name":"dental-broken","category":"","tags":["tooth","dentist","medical","care","caries"],"variants":{"outline":"f286"}},"dental-off":{"name":"dental-off","category":"Health","tags":["tooth","toothbrush","mouth","hygiene"],"variants":{"outline":"f110"}},"dental":{"name":"dental","category":"Health","tags":["tooth","toothbrush","mouth","hygiene"],"variants":{"outline":"f025"}},"deselect":{"name":"deselect","category":"","tags":["unselect","clear-selection","deselection","unpick","uncheck","deactivate","unmark","remove-selection","untag","unchoose"],"variants":{"outline":"f9f3"}},"desk":{"name":"desk","category":"","tags":["workspace","workstation","table","office-desk","workplace","furniture","desk-setup","desktop","office-furniture","working"],"variants":{"outline":"fd35"}},"details-off":{"name":"details-off","category":"","tags":["geometric","half","shape","highlight","triangle"],"variants":{"outline":"f3e2"}},"details":{"name":"details","category":"","tags":["geometric","half","shape","highlight","triangle"],"variants":{"outline":"ee71"}},"device-airpods-case":{"name":"device-airpods-case","category":"Devices","tags":["music","audio","apple","iphone","wireless","sound"],"variants":{"outline":"f646"}},"device-airpods":{"name":"device-airpods","category":"Devices","tags":["music","iphone","apple","wireless","headphones","sound","earbuds"],"variants":{"outline":"f5a9"}},"device-airtag":{"name":"device-airtag","category":"Devices","tags":[],"variants":{"outline":"fae6"}},"device-analytics":{"name":"device-analytics","category":"Devices","tags":["analyze","analyse","data","traffic","user"],"variants":{"outline":"ee72"}},"device-audio-tape":{"name":"device-audio-tape","category":"Devices","tags":["record","music","radio","cassette","recording","play"],"variants":{"outline":"ee73"}},"device-camera-phone":{"name":"device-camera-phone","category":"Devices","tags":["smartphone","technology","photo","gadget","photography"],"variants":{"outline":"f233"}},"device-cctv-off":{"name":"device-cctv-off","category":"Devices","tags":["closed","circuit","television","video","surveillance","signal","monitor","record"],"variants":{"outline":"f3e3"}},"device-cctv":{"name":"device-cctv","category":"Devices","tags":["closed","circuit","television","video","surveillance","signal","monitor","record"],"variants":{"outline":"ee74"}},"device-computer-camera-off":{"name":"device-computer-camera-off","category":"Devices","tags":["video","meeting","record","recording","webcam"],"variants":{"outline":"ee75"}},"device-computer-camera":{"name":"device-computer-camera","category":"Devices","tags":["video","meeting","record","recording","webcam"],"variants":{"outline":"ee76"}},"device-desktop-analytics":{"name":"device-desktop-analytics","category":"Devices","tags":["monitor","computer","imac","stats","charts"],"variants":{"outline":"ee77"}},"device-desktop-bolt":{"name":"device-desktop-bolt","category":"Devices","tags":[],"variants":{"outline":"f85e"}},"device-desktop-cancel":{"name":"device-desktop-cancel","category":"Devices","tags":[],"variants":{"outline":"f85f"}},"device-desktop-check":{"name":"device-desktop-check","category":"Devices","tags":[],"variants":{"outline":"f860"}},"device-desktop-code":{"name":"device-desktop-code","category":"Devices","tags":[],"variants":{"outline":"f861"}},"device-desktop-cog":{"name":"device-desktop-cog","category":"Devices","tags":[],"variants":{"outline":"f862"}},"device-desktop-dollar":{"name":"device-desktop-dollar","category":"Devices","tags":[],"variants":{"outline":"f863"}},"device-desktop-down":{"name":"device-desktop-down","category":"Devices","tags":[],"variants":{"outline":"f864"}},"device-desktop-exclamation":{"name":"device-desktop-exclamation","category":"Devices","tags":[],"variants":{"outline":"f865"}},"device-desktop-heart":{"name":"device-desktop-heart","category":"Devices","tags":[],"variants":{"outline":"f866"}},"device-desktop-minus":{"name":"device-desktop-minus","category":"Devices","tags":[],"variants":{"outline":"f867"}},"device-desktop-off":{"name":"device-desktop-off","category":"Devices","tags":["monitor","computer","imac"],"variants":{"outline":"ee78"}},"device-desktop-pause":{"name":"device-desktop-pause","category":"Devices","tags":[],"variants":{"outline":"f868"}},"device-desktop-pin":{"name":"device-desktop-pin","category":"Devices","tags":[],"variants":{"outline":"f869"}},"device-desktop-plus":{"name":"device-desktop-plus","category":"Devices","tags":[],"variants":{"outline":"f86a"}},"device-desktop-question":{"name":"device-desktop-question","category":"Devices","tags":[],"variants":{"outline":"f86b"}},"device-desktop-search":{"name":"device-desktop-search","category":"Devices","tags":[],"variants":{"outline":"f86c"}},"device-desktop-share":{"name":"device-desktop-share","category":"Devices","tags":[],"variants":{"outline":"f86d"}},"device-desktop-star":{"name":"device-desktop-star","category":"Devices","tags":[],"variants":{"outline":"f86e"}},"device-desktop-up":{"name":"device-desktop-up","category":"Devices","tags":[],"variants":{"outline":"f86f"}},"device-desktop-x":{"name":"device-desktop-x","category":"Devices","tags":[],"variants":{"outline":"f870"}},"device-desktop":{"name":"device-desktop","category":"Devices","tags":["monitor","computer","imac"],"variants":{"outline":"ea89"}},"device-floppy":{"name":"device-floppy","category":"Devices","tags":["save","file","disk"],"variants":{"outline":"eb62"}},"device-gamepad-2":{"name":"device-gamepad-2","category":"Devices","tags":["game","play","entertainment","console","joystick","joypad","controller"],"variants":{"outline":"f1d2"}},"device-gamepad-3":{"name":"device-gamepad-3","category":"Devices","tags":[],"variants":{"outline":"fc58"}},"device-gamepad":{"name":"device-gamepad","category":"Devices","tags":["game","play","entertainment","console","joystick","joypad","controller"],"variants":{"outline":"eb63"}},"device-heart-monitor":{"name":"device-heart-monitor","category":"Devices","tags":["hospital","rate","healthcare","health"],"variants":{"outline":"f060","filled":"fa38"}},"device-imac-bolt":{"name":"device-imac-bolt","category":"Devices","tags":[],"variants":{"outline":"f871"}},"device-imac-cancel":{"name":"device-imac-cancel","category":"Devices","tags":[],"variants":{"outline":"f872"}},"device-imac-check":{"name":"device-imac-check","category":"Devices","tags":[],"variants":{"outline":"f873"}},"device-imac-code":{"name":"device-imac-code","category":"Devices","tags":[],"variants":{"outline":"f874"}},"device-imac-cog":{"name":"device-imac-cog","category":"Devices","tags":[],"variants":{"outline":"f875"}},"device-imac-dollar":{"name":"device-imac-dollar","category":"Devices","tags":[],"variants":{"outline":"f876"}},"device-imac-down":{"name":"device-imac-down","category":"Devices","tags":[],"variants":{"outline":"f877"}},"device-imac-exclamation":{"name":"device-imac-exclamation","category":"Devices","tags":[],"variants":{"outline":"f878"}},"device-imac-heart":{"name":"device-imac-heart","category":"Devices","tags":[],"variants":{"outline":"f879"}},"device-imac-minus":{"name":"device-imac-minus","category":"Devices","tags":[],"variants":{"outline":"f87a"}},"device-imac-off":{"name":"device-imac-off","category":"Devices","tags":["computer","monitor","apple","desktop","pc"],"variants":{"outline":"f87b"}},"device-imac-pause":{"name":"device-imac-pause","category":"Devices","tags":[],"variants":{"outline":"f87c"}},"device-imac-pin":{"name":"device-imac-pin","category":"Devices","tags":[],"variants":{"outline":"f87d"}},"device-imac-plus":{"name":"device-imac-plus","category":"Devices","tags":[],"variants":{"outline":"f87e"}},"device-imac-question":{"name":"device-imac-question","category":"Devices","tags":[],"variants":{"outline":"f87f"}},"device-imac-search":{"name":"device-imac-search","category":"Devices","tags":[],"variants":{"outline":"f880"}},"device-imac-share":{"name":"device-imac-share","category":"Devices","tags":[],"variants":{"outline":"f881"}},"device-imac-star":{"name":"device-imac-star","category":"Devices","tags":[],"variants":{"outline":"f882"}},"device-imac-up":{"name":"device-imac-up","category":"Devices","tags":[],"variants":{"outline":"f883"}},"device-imac-x":{"name":"device-imac-x","category":"Devices","tags":[],"variants":{"outline":"f884"}},"device-imac":{"name":"device-imac","category":"Devices","tags":["computer","monitor","apple","desktop","pc"],"variants":{"outline":"f7a7"}},"device-ipad-bolt":{"name":"device-ipad-bolt","category":"Devices","tags":[],"variants":{"outline":"f885"}},"device-ipad-cancel":{"name":"device-ipad-cancel","category":"Devices","tags":[],"variants":{"outline":"f886"}},"device-ipad-check":{"name":"device-ipad-check","category":"Devices","tags":[],"variants":{"outline":"f887"}},"device-ipad-code":{"name":"device-ipad-code","category":"Devices","tags":[],"variants":{"outline":"f888"}},"device-ipad-cog":{"name":"device-ipad-cog","category":"Devices","tags":[],"variants":{"outline":"f889"}},"device-ipad-dollar":{"name":"device-ipad-dollar","category":"Devices","tags":[],"variants":{"outline":"f88a"}},"device-ipad-down":{"name":"device-ipad-down","category":"Devices","tags":[],"variants":{"outline":"f88b"}},"device-ipad-exclamation":{"name":"device-ipad-exclamation","category":"Devices","tags":[],"variants":{"outline":"f88c"}},"device-ipad-heart":{"name":"device-ipad-heart","category":"Devices","tags":[],"variants":{"outline":"f88d"}},"device-ipad-horizontal-bolt":{"name":"device-ipad-horizontal-bolt","category":"Devices","tags":[],"variants":{"outline":"f88e"}},"device-ipad-horizontal-cancel":{"name":"device-ipad-horizontal-cancel","category":"Devices","tags":[],"variants":{"outline":"f88f"}},"device-ipad-horizontal-check":{"name":"device-ipad-horizontal-check","category":"Devices","tags":[],"variants":{"outline":"f890"}},"device-ipad-horizontal-code":{"name":"device-ipad-horizontal-code","category":"Devices","tags":[],"variants":{"outline":"f891"}},"device-ipad-horizontal-cog":{"name":"device-ipad-horizontal-cog","category":"Devices","tags":[],"variants":{"outline":"f892"}},"device-ipad-horizontal-dollar":{"name":"device-ipad-horizontal-dollar","category":"Devices","tags":[],"variants":{"outline":"f893"}},"device-ipad-horizontal-down":{"name":"device-ipad-horizontal-down","category":"Devices","tags":[],"variants":{"outline":"f894"}},"device-ipad-horizontal-exclamation":{"name":"device-ipad-horizontal-exclamation","category":"Devices","tags":[],"variants":{"outline":"f895"}},"device-ipad-horizontal-heart":{"name":"device-ipad-horizontal-heart","category":"Devices","tags":[],"variants":{"outline":"f896"}},"device-ipad-horizontal-minus":{"name":"device-ipad-horizontal-minus","category":"Devices","tags":[],"variants":{"outline":"f897"}},"device-ipad-horizontal-off":{"name":"device-ipad-horizontal-off","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f898"}},"device-ipad-horizontal-pause":{"name":"device-ipad-horizontal-pause","category":"Devices","tags":[],"variants":{"outline":"f899"}},"device-ipad-horizontal-pin":{"name":"device-ipad-horizontal-pin","category":"Devices","tags":[],"variants":{"outline":"f89a"}},"device-ipad-horizontal-plus":{"name":"device-ipad-horizontal-plus","category":"Devices","tags":[],"variants":{"outline":"f89b"}},"device-ipad-horizontal-question":{"name":"device-ipad-horizontal-question","category":"Devices","tags":[],"variants":{"outline":"f89c"}},"device-ipad-horizontal-search":{"name":"device-ipad-horizontal-search","category":"Devices","tags":[],"variants":{"outline":"f89d"}},"device-ipad-horizontal-share":{"name":"device-ipad-horizontal-share","category":"Devices","tags":[],"variants":{"outline":"f89e"}},"device-ipad-horizontal-star":{"name":"device-ipad-horizontal-star","category":"Devices","tags":[],"variants":{"outline":"f89f"}},"device-ipad-horizontal-up":{"name":"device-ipad-horizontal-up","category":"Devices","tags":[],"variants":{"outline":"f8a0"}},"device-ipad-horizontal-x":{"name":"device-ipad-horizontal-x","category":"Devices","tags":[],"variants":{"outline":"f8a1"}},"device-ipad-horizontal":{"name":"device-ipad-horizontal","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f647"}},"device-ipad-minus":{"name":"device-ipad-minus","category":"Devices","tags":[],"variants":{"outline":"f8a2"}},"device-ipad-off":{"name":"device-ipad-off","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f8a3"}},"device-ipad-pause":{"name":"device-ipad-pause","category":"Devices","tags":[],"variants":{"outline":"f8a4"}},"device-ipad-pin":{"name":"device-ipad-pin","category":"Devices","tags":[],"variants":{"outline":"f8a5"}},"device-ipad-plus":{"name":"device-ipad-plus","category":"Devices","tags":[],"variants":{"outline":"f8a6"}},"device-ipad-question":{"name":"device-ipad-question","category":"Devices","tags":[],"variants":{"outline":"f8a7"}},"device-ipad-search":{"name":"device-ipad-search","category":"Devices","tags":[],"variants":{"outline":"f8a8"}},"device-ipad-share":{"name":"device-ipad-share","category":"Devices","tags":[],"variants":{"outline":"f8a9"}},"device-ipad-star":{"name":"device-ipad-star","category":"Devices","tags":[],"variants":{"outline":"f8aa"}},"device-ipad-up":{"name":"device-ipad-up","category":"Devices","tags":[],"variants":{"outline":"f8ab"}},"device-ipad-x":{"name":"device-ipad-x","category":"Devices","tags":[],"variants":{"outline":"f8ac"}},"device-ipad":{"name":"device-ipad","category":"Devices","tags":["tablet","apple","mobile","technology","ios"],"variants":{"outline":"f648"}},"device-landline-phone":{"name":"device-landline-phone","category":"Devices","tags":["telephone","call","comunication","digital"],"variants":{"outline":"f649"}},"device-laptop-off":{"name":"device-laptop-off","category":"Devices","tags":["workstation","mac","notebook","portable","screen","computer"],"variants":{"outline":"f061"}},"device-laptop":{"name":"device-laptop","category":"Devices","tags":["workstation","mac","notebook","portable","screen","computer"],"variants":{"outline":"eb64"}},"device-mobile-bolt":{"name":"device-mobile-bolt","category":"Devices","tags":[],"variants":{"outline":"f8ad"}},"device-mobile-cancel":{"name":"device-mobile-cancel","category":"Devices","tags":[],"variants":{"outline":"f8ae"}},"device-mobile-charging":{"name":"device-mobile-charging","category":"Devices","tags":["battery","charge","wireless","cable"],"variants":{"outline":"f224"}},"device-mobile-check":{"name":"device-mobile-check","category":"Devices","tags":[],"variants":{"outline":"f8af"}},"device-mobile-code":{"name":"device-mobile-code","category":"Devices","tags":[],"variants":{"outline":"f8b0"}},"device-mobile-cog":{"name":"device-mobile-cog","category":"Devices","tags":[],"variants":{"outline":"f8b1"}},"device-mobile-dollar":{"name":"device-mobile-dollar","category":"Devices","tags":[],"variants":{"outline":"f8b2"}},"device-mobile-down":{"name":"device-mobile-down","category":"Devices","tags":[],"variants":{"outline":"f8b3"}},"device-mobile-exclamation":{"name":"device-mobile-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8b4"}},"device-mobile-heart":{"name":"device-mobile-heart","category":"Devices","tags":[],"variants":{"outline":"f8b5"}},"device-mobile-message":{"name":"device-mobile-message","category":"Devices","tags":["iphone","phone","smartphone","cellphone","sms","texting","chat","text"],"variants":{"outline":"ee79"}},"device-mobile-minus":{"name":"device-mobile-minus","category":"Devices","tags":[],"variants":{"outline":"f8b6"}},"device-mobile-off":{"name":"device-mobile-off","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"f062"}},"device-mobile-pause":{"name":"device-mobile-pause","category":"Devices","tags":[],"variants":{"outline":"f8b7"}},"device-mobile-pin":{"name":"device-mobile-pin","category":"Devices","tags":[],"variants":{"outline":"f8b8"}},"device-mobile-plus":{"name":"device-mobile-plus","category":"Devices","tags":[],"variants":{"outline":"f8b9"}},"device-mobile-question":{"name":"device-mobile-question","category":"Devices","tags":[],"variants":{"outline":"f8ba"}},"device-mobile-rotated":{"name":"device-mobile-rotated","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"ecdb"}},"device-mobile-search":{"name":"device-mobile-search","category":"Devices","tags":[],"variants":{"outline":"f8bb"}},"device-mobile-share":{"name":"device-mobile-share","category":"Devices","tags":[],"variants":{"outline":"f8bc"}},"device-mobile-star":{"name":"device-mobile-star","category":"Devices","tags":[],"variants":{"outline":"f8bd"}},"device-mobile-up":{"name":"device-mobile-up","category":"Devices","tags":[],"variants":{"outline":"f8be"}},"device-mobile-vibration":{"name":"device-mobile-vibration","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"eb86"}},"device-mobile-x":{"name":"device-mobile-x","category":"Devices","tags":[],"variants":{"outline":"f8bf"}},"device-mobile":{"name":"device-mobile","category":"Devices","tags":["iphone","phone","smartphone","cellphone"],"variants":{"outline":"ea8a","filled":"fa39"}},"device-nintendo-off":{"name":"device-nintendo-off","category":"Devices","tags":["gamepad","technology","game","console","controller"],"variants":{"outline":"f111"}},"device-nintendo":{"name":"device-nintendo","category":"Devices","tags":["gamepad","technology","game","console","controller"],"variants":{"outline":"f026"}},"device-projector":{"name":"device-projector","category":"","tags":[],"variants":{"outline":"fc11"}},"device-remote":{"name":"device-remote","category":"Devices","tags":["control","tv","home","television"],"variants":{"outline":"f792"}},"device-sd-card":{"name":"device-sd-card","category":"Devices","tags":["memory","storage","technology","data"],"variants":{"outline":"f384"}},"device-sim-1":{"name":"device-sim-1","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4af"}},"device-sim-2":{"name":"device-sim-2","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b0"}},"device-sim-3":{"name":"device-sim-3","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b1"}},"device-sim":{"name":"device-sim","category":"Devices","tags":["card","phone","mobile","smartphone"],"variants":{"outline":"f4b2"}},"device-speaker-off":{"name":"device-speaker-off","category":"Devices","tags":["sound","music","loud","audio","media"],"variants":{"outline":"f112"}},"device-speaker":{"name":"device-speaker","category":"Devices","tags":["sound","music","loud","audio","media"],"variants":{"outline":"ea8b"}},"device-tablet-bolt":{"name":"device-tablet-bolt","category":"Devices","tags":[],"variants":{"outline":"f8c0"}},"device-tablet-cancel":{"name":"device-tablet-cancel","category":"Devices","tags":[],"variants":{"outline":"f8c1"}},"device-tablet-check":{"name":"device-tablet-check","category":"Devices","tags":[],"variants":{"outline":"f8c2"}},"device-tablet-code":{"name":"device-tablet-code","category":"Devices","tags":[],"variants":{"outline":"f8c3"}},"device-tablet-cog":{"name":"device-tablet-cog","category":"Devices","tags":[],"variants":{"outline":"f8c4"}},"device-tablet-dollar":{"name":"device-tablet-dollar","category":"Devices","tags":[],"variants":{"outline":"f8c5"}},"device-tablet-down":{"name":"device-tablet-down","category":"Devices","tags":[],"variants":{"outline":"f8c6"}},"device-tablet-exclamation":{"name":"device-tablet-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8c7"}},"device-tablet-heart":{"name":"device-tablet-heart","category":"Devices","tags":[],"variants":{"outline":"f8c8"}},"device-tablet-minus":{"name":"device-tablet-minus","category":"Devices","tags":[],"variants":{"outline":"f8c9"}},"device-tablet-off":{"name":"device-tablet-off","category":"Devices","tags":["ipad","mobile","touchscreen","portable"],"variants":{"outline":"f063"}},"device-tablet-pause":{"name":"device-tablet-pause","category":"Devices","tags":[],"variants":{"outline":"f8ca"}},"device-tablet-pin":{"name":"device-tablet-pin","category":"Devices","tags":[],"variants":{"outline":"f8cb"}},"device-tablet-plus":{"name":"device-tablet-plus","category":"Devices","tags":[],"variants":{"outline":"f8cc"}},"device-tablet-question":{"name":"device-tablet-question","category":"Devices","tags":[],"variants":{"outline":"f8cd"}},"device-tablet-search":{"name":"device-tablet-search","category":"Devices","tags":[],"variants":{"outline":"f8ce"}},"device-tablet-share":{"name":"device-tablet-share","category":"Devices","tags":[],"variants":{"outline":"f8cf"}},"device-tablet-star":{"name":"device-tablet-star","category":"Devices","tags":[],"variants":{"outline":"f8d0"}},"device-tablet-up":{"name":"device-tablet-up","category":"Devices","tags":[],"variants":{"outline":"f8d1"}},"device-tablet-x":{"name":"device-tablet-x","category":"Devices","tags":[],"variants":{"outline":"f8d2"}},"device-tablet":{"name":"device-tablet","category":"Devices","tags":["ipad","mobile","touchscreen","portable"],"variants":{"outline":"ea8c","filled":"fa3a"}},"device-tv-off":{"name":"device-tv-off","category":"Devices","tags":["screen","display","movie","film","watch","audio","video","media"],"variants":{"outline":"f064"}},"device-tv-old":{"name":"device-tv-old","category":"Devices","tags":["film","watch","audio","video","media","retro","antenna"],"variants":{"outline":"f1d3"}},"device-tv":{"name":"device-tv","category":"Devices","tags":["screen","display","movie","film","watch","audio","video","media"],"variants":{"outline":"ea8d"}},"device-unknown":{"name":"device-unknown","category":"","tags":[],"variants":{"outline":"fef4"}},"device-usb":{"name":"device-usb","category":"Devices","tags":[],"variants":{"outline":"fc59"}},"device-vision-pro":{"name":"device-vision-pro","category":"Devices","tags":[],"variants":{"outline":"fae7"}},"device-watch-bolt":{"name":"device-watch-bolt","category":"Devices","tags":[],"variants":{"outline":"f8d3"}},"device-watch-cancel":{"name":"device-watch-cancel","category":"Devices","tags":[],"variants":{"outline":"f8d4"}},"device-watch-check":{"name":"device-watch-check","category":"Devices","tags":[],"variants":{"outline":"f8d5"}},"device-watch-code":{"name":"device-watch-code","category":"Devices","tags":[],"variants":{"outline":"f8d6"}},"device-watch-cog":{"name":"device-watch-cog","category":"Devices","tags":[],"variants":{"outline":"f8d7"}},"device-watch-dollar":{"name":"device-watch-dollar","category":"Devices","tags":[],"variants":{"outline":"f8d8"}},"device-watch-down":{"name":"device-watch-down","category":"Devices","tags":[],"variants":{"outline":"f8d9"}},"device-watch-exclamation":{"name":"device-watch-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8da"}},"device-watch-heart":{"name":"device-watch-heart","category":"Devices","tags":[],"variants":{"outline":"f8db"}},"device-watch-minus":{"name":"device-watch-minus","category":"Devices","tags":[],"variants":{"outline":"f8dc"}},"device-watch-off":{"name":"device-watch-off","category":"Devices","tags":["arm","hour","date","minutes","sec.","timer"],"variants":{"outline":"f065"}},"device-watch-pause":{"name":"device-watch-pause","category":"Devices","tags":[],"variants":{"outline":"f8dd"}},"device-watch-pin":{"name":"device-watch-pin","category":"Devices","tags":[],"variants":{"outline":"f8de"}},"device-watch-plus":{"name":"device-watch-plus","category":"Devices","tags":[],"variants":{"outline":"f8df"}},"device-watch-question":{"name":"device-watch-question","category":"Devices","tags":[],"variants":{"outline":"f8e0"}},"device-watch-search":{"name":"device-watch-search","category":"Devices","tags":[],"variants":{"outline":"f8e1"}},"device-watch-share":{"name":"device-watch-share","category":"Devices","tags":[],"variants":{"outline":"f8e2"}},"device-watch-star":{"name":"device-watch-star","category":"Devices","tags":[],"variants":{"outline":"f8e3"}},"device-watch-stats-2":{"name":"device-watch-stats-2","category":"Devices","tags":["steps","pulse","hour","date"],"variants":{"outline":"ef7c"}},"device-watch-stats":{"name":"device-watch-stats","category":"Devices","tags":["steps","pulse","hour","date"],"variants":{"outline":"ef7d"}},"device-watch-up":{"name":"device-watch-up","category":"Devices","tags":[],"variants":{"outline":"f8e4"}},"device-watch-x":{"name":"device-watch-x","category":"Devices","tags":[],"variants":{"outline":"f8e5"}},"device-watch":{"name":"device-watch","category":"Devices","tags":["arm","hour","date","minutes","sec.","timer"],"variants":{"outline":"ebf9"}},"devices-2":{"name":"devices-2","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"ed29"}},"devices-bolt":{"name":"devices-bolt","category":"Devices","tags":[],"variants":{"outline":"f8e6"}},"devices-cancel":{"name":"devices-cancel","category":"Devices","tags":[],"variants":{"outline":"f8e7"}},"devices-check":{"name":"devices-check","category":"Devices","tags":[],"variants":{"outline":"f8e8"}},"devices-code":{"name":"devices-code","category":"Devices","tags":[],"variants":{"outline":"f8e9"}},"devices-cog":{"name":"devices-cog","category":"Devices","tags":[],"variants":{"outline":"f8ea"}},"devices-dollar":{"name":"devices-dollar","category":"Devices","tags":[],"variants":{"outline":"f8eb"}},"devices-down":{"name":"devices-down","category":"Devices","tags":[],"variants":{"outline":"f8ec"}},"devices-exclamation":{"name":"devices-exclamation","category":"Devices","tags":[],"variants":{"outline":"f8ed"}},"devices-heart":{"name":"devices-heart","category":"Devices","tags":[],"variants":{"outline":"f8ee"}},"devices-minus":{"name":"devices-minus","category":"Devices","tags":[],"variants":{"outline":"f8ef"}},"devices-off":{"name":"devices-off","category":"Devices","tags":["computer","laptop","notebook","tablet","phone","mobile","mac","iphone"],"variants":{"outline":"f3e4"}},"devices-pause":{"name":"devices-pause","category":"Devices","tags":[],"variants":{"outline":"f8f0"}},"devices-pc-off":{"name":"devices-pc-off","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"f113"}},"devices-pc":{"name":"devices-pc","category":"Devices","tags":["computer","monitor","keyboard"],"variants":{"outline":"ee7a"}},"devices-pin":{"name":"devices-pin","category":"Devices","tags":[],"variants":{"outline":"f8f1"}},"devices-plus":{"name":"devices-plus","category":"Devices","tags":[],"variants":{"outline":"f8f2"}},"devices-question":{"name":"devices-question","category":"Devices","tags":[],"variants":{"outline":"f8f3"}},"devices-search":{"name":"devices-search","category":"Devices","tags":[],"variants":{"outline":"f8f4"}},"devices-share":{"name":"devices-share","category":"Devices","tags":[],"variants":{"outline":"f8f5"}},"devices-star":{"name":"devices-star","category":"Devices","tags":[],"variants":{"outline":"f8f6"}},"devices-up":{"name":"devices-up","category":"Devices","tags":[],"variants":{"outline":"f8f7"}},"devices-x":{"name":"devices-x","category":"Devices","tags":[],"variants":{"outline":"f8f8"}},"devices":{"name":"devices","category":"Devices","tags":["computer","laptop","notebook","tablet","phone","mobile","mac","iphone"],"variants":{"outline":"eb87"}},"diabolo-off":{"name":"diabolo-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9a"}},"diabolo-plus":{"name":"diabolo-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9b"}},"diabolo":{"name":"diabolo","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9c"}},"dialpad-off":{"name":"dialpad-off","category":"Devices","tags":["keypad","telephone","phone","call","number"],"variants":{"outline":"f114"}},"dialpad":{"name":"dialpad","category":"Devices","tags":["keypad","telephone","phone","call","number"],"variants":{"outline":"f067","filled":"fa3b"}},"diamond-off":{"name":"diamond-off","category":"","tags":["jewellery","crystal","mineral","jewelry","ring"],"variants":{"outline":"f115"}},"diamond":{"name":"diamond","category":"","tags":["jewellery","crystal","mineral","jewelry","ring"],"variants":{"outline":"eb65","filled":"f73d"}},"diamonds":{"name":"diamonds","category":"Shapes","tags":["gambling","game","casino","cards","poker"],"variants":{"outline":"eff5","filled":"f676"}},"dice-1":{"name":"dice-1","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08b","filled":"f73e"}},"dice-2":{"name":"dice-2","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08c","filled":"f73f"}},"dice-3":{"name":"dice-3","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08d","filled":"f740"}},"dice-4":{"name":"dice-4","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08e","filled":"f741"}},"dice-5":{"name":"dice-5","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f08f","filled":"f742"}},"dice-6":{"name":"dice-6","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"f090","filled":"f743"}},"dice":{"name":"dice","category":"Games","tags":["game","boardgame","roll","throw","cube","numbers","gambling"],"variants":{"outline":"eb66","filled":"f744"}},"dimensions":{"name":"dimensions","category":"Design","tags":["width","height","size","breadth","depth"],"variants":{"outline":"ee7b"}},"direction-arrows":{"name":"direction-arrows","category":"","tags":["arrows","directional","navigate","wayfinding","pointing","route","orientation","arrow-sign","guidance","direction"],"variants":{"outline":"fd36"}},"direction-horizontal":{"name":"direction-horizontal","category":"","tags":["travel","navigation discover","plane"],"variants":{"outline":"ebfa"}},"direction-sign-off":{"name":"direction-sign-off","category":"","tags":["arrow","navigation","forward","right"],"variants":{"outline":"f3e5"}},"direction-sign":{"name":"direction-sign","category":"","tags":["arrow","navigation","forward","right"],"variants":{"outline":"f1f7","filled":"f745"}},"direction":{"name":"direction","category":"","tags":["travel","navigation discover"],"variants":{"outline":"ebfb"}},"directions-off":{"name":"directions-off","category":"Map","tags":["travel","navigation","discover"],"variants":{"outline":"f116"}},"directions":{"name":"directions","category":"Map","tags":["travel","navigation","discover"],"variants":{"outline":"ea8e"}},"disabled-2":{"name":"disabled-2","category":"Health","tags":["wheelchair","accessible","handicapped"],"variants":{"outline":"ebaf"}},"disabled-off":{"name":"disabled-off","category":"Health","tags":["wheelchair","handicapped"],"variants":{"outline":"f117"}},"disabled":{"name":"disabled","category":"Health","tags":["wheelchair","handicapped"],"variants":{"outline":"ea8f"}},"disc-golf":{"name":"disc-golf","category":"Sport","tags":["frisbee","throw","sport","activity"],"variants":{"outline":"f385"}},"disc-off":{"name":"disc-off","category":"Devices","tags":["cd","music","album"],"variants":{"outline":"f118"}},"disc":{"name":"disc","category":"Devices","tags":["cd","music","album"],"variants":{"outline":"ea90"}},"discount-off":{"name":"discount-off","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"f3e7"}},"discount":{"name":"discount","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"ebbd"}},"divide":{"name":"divide","category":"Math","tags":["separate","element","multiple","apart","separator","parts"],"variants":{"outline":"ed5c"}},"dna-2-off":{"name":"dna-2-off","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"f119"}},"dna-2":{"name":"dna-2","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"ef5c"}},"dna-off":{"name":"dna-off","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"f11a"}},"dna":{"name":"dna","category":"Health","tags":["genetics","biology","chain","genetic","code","virus","organism"],"variants":{"outline":"ee7d"}},"dog-bowl":{"name":"dog-bowl","category":"Food","tags":["pet","food","animal","bone"],"variants":{"outline":"ef29"}},"dog":{"name":"dog","category":"Animals","tags":["pet","animal","cute","bone","home","puppy"],"variants":{"outline":"f660"}},"door-enter":{"name":"door-enter","category":"","tags":["entrance","open","in","entry"],"variants":{"outline":"ef4c"}},"door-exit":{"name":"door-exit","category":"","tags":["out","close","leave"],"variants":{"outline":"ef4d"}},"door-off":{"name":"door-off","category":"","tags":["entrance","home","house","room"],"variants":{"outline":"f11b"}},"door":{"name":"door","category":"","tags":["entrance","home","house","room"],"variants":{"outline":"ef4e"}},"dots-circle-horizontal":{"name":"dots-circle-horizontal","category":"System","tags":["more","options"],"variants":{"outline":"ea91"}},"dots-diagonal-2":{"name":"dots-diagonal-2","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea92"}},"dots-diagonal":{"name":"dots-diagonal","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea93"}},"dots-vertical":{"name":"dots-vertical","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea94"}},"dots":{"name":"dots","category":"System","tags":["hellip","more","ellipsis"],"variants":{"outline":"ea95"}},"download-off":{"name":"download-off","category":"Arrows","tags":["save","arrow"],"variants":{"outline":"f11c"}},"download":{"name":"download","category":"Arrows","tags":["save","arrow"],"variants":{"outline":"ea96"}},"drag-drop-2":{"name":"drag-drop-2","category":"Design","tags":["location","gesture","move"],"variants":{"outline":"eb88"}},"drag-drop":{"name":"drag-drop","category":"Design","tags":["location","gesture","move"],"variants":{"outline":"eb89"}},"drone-off":{"name":"drone-off","category":"Vehicles","tags":["device","fly","aircraft","surveillance","control","autonomous"],"variants":{"outline":"ee7e"}},"drone":{"name":"drone","category":"Vehicles","tags":["device","fly","aircraft","surveillance","control","autonomous"],"variants":{"outline":"ed79"}},"drop-circle":{"name":"drop-circle","category":"","tags":["water","rain","droplet","oil"],"variants":{"outline":"efde"}},"droplet-bolt":{"name":"droplet-bolt","category":"Design","tags":[],"variants":{"outline":"f8f9"}},"droplet-cancel":{"name":"droplet-cancel","category":"Design","tags":[],"variants":{"outline":"f8fa"}},"droplet-check":{"name":"droplet-check","category":"Design","tags":[],"variants":{"outline":"f8fb"}},"droplet-code":{"name":"droplet-code","category":"Design","tags":[],"variants":{"outline":"f8fc"}},"droplet-cog":{"name":"droplet-cog","category":"Design","tags":[],"variants":{"outline":"f8fd"}},"droplet-dollar":{"name":"droplet-dollar","category":"Design","tags":[],"variants":{"outline":"f8fe"}},"droplet-down":{"name":"droplet-down","category":"Design","tags":[],"variants":{"outline":"f8ff"}},"droplet-exclamation":{"name":"droplet-exclamation","category":"Design","tags":[],"variants":{"outline":"f900"}},"droplet-half-2":{"name":"droplet-half-2","category":"Design","tags":["water","rain","liquid","fill"],"variants":{"outline":"ee81","filled":"fb6c"}},"droplet-half":{"name":"droplet-half","category":"Design","tags":["water","rain","liquid","fill"],"variants":{"outline":"ee82","filled":"f6c5"}},"droplet-heart":{"name":"droplet-heart","category":"Design","tags":[],"variants":{"outline":"f901"}},"droplet-minus":{"name":"droplet-minus","category":"Design","tags":[],"variants":{"outline":"f902"}},"droplet-off":{"name":"droplet-off","category":"Design","tags":["water","rain","liquid"],"variants":{"outline":"ee83"}},"droplet-pause":{"name":"droplet-pause","category":"Design","tags":[],"variants":{"outline":"f903"}},"droplet-pin":{"name":"droplet-pin","category":"Design","tags":[],"variants":{"outline":"f904"}},"droplet-plus":{"name":"droplet-plus","category":"Design","tags":[],"variants":{"outline":"f905"}},"droplet-question":{"name":"droplet-question","category":"Design","tags":[],"variants":{"outline":"f906"}},"droplet-search":{"name":"droplet-search","category":"Design","tags":[],"variants":{"outline":"f907"}},"droplet-share":{"name":"droplet-share","category":"Design","tags":[],"variants":{"outline":"f908"}},"droplet-star":{"name":"droplet-star","category":"Design","tags":[],"variants":{"outline":"f909"}},"droplet-up":{"name":"droplet-up","category":"Design","tags":[],"variants":{"outline":"f90a"}},"droplet-x":{"name":"droplet-x","category":"Design","tags":[],"variants":{"outline":"f90b"}},"droplet":{"name":"droplet","category":"Design","tags":["water","rain","liquid"],"variants":{"outline":"ea97","filled":"ee80"}},"droplets":{"name":"droplets","category":"","tags":[],"variants":{"outline":"fc12"}},"dual-screen":{"name":"dual-screen","category":"Devices","tags":[],"variants":{"outline":"fa59"}},"dumpling":{"name":"dumpling","category":"Food","tags":["food","chinese","asian","meal","snack","dough","meat","vegetable","steamed","boiled","fried","cuisine","traditional","delicious","tasty"],"variants":{"outline":"feb5"}},"e-passport":{"name":"e-passport","category":"E-commerce","tags":["id","online","mobile","app","travel"],"variants":{"outline":"f4df"}},"ear-off":{"name":"ear-off","category":"Health","tags":["sound","listen","music","hear","loud","speakers"],"variants":{"outline":"ee84"}},"ear-scan":{"name":"ear-scan","category":"","tags":["ear","scan","audiology","hearing-test","ear-exam","medical","healthcare","ear-scan","diagnosis","hearing-health"],"variants":{"outline":"fd57"}},"ear":{"name":"ear","category":"Health","tags":["sound","listen","music","hear","loud","speakers"],"variants":{"outline":"ebce"}},"ease-in-control-point":{"name":"ease-in-control-point","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f570"}},"ease-in-out-control-points":{"name":"ease-in-out-control-points","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f571"}},"ease-in-out":{"name":"ease-in-out","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f572"}},"ease-in":{"name":"ease-in","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f573"}},"ease-out-control-point":{"name":"ease-out-control-point","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f574"}},"ease-out":{"name":"ease-out","category":"Design","tags":["animation","graph","curve","function"],"variants":{"outline":"f575"}},"edit-circle-off":{"name":"edit-circle-off","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"f11d"}},"edit-circle":{"name":"edit-circle","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"ee85"}},"edit-off":{"name":"edit-off","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"f11e"}},"edit":{"name":"edit","category":"Design","tags":["pencil","change","update"],"variants":{"outline":"ea98"}},"egg-cracked":{"name":"egg-cracked","category":"Food","tags":["breaking","broken","food","breakfast"],"variants":{"outline":"f2d6"}},"egg-fried":{"name":"egg-fried","category":"Food","tags":["food","breakfast","cooking","kitchen"],"variants":{"outline":"f386"}},"egg-off":{"name":"egg-off","category":"Food","tags":["food","easter","chicken"],"variants":{"outline":"f11f"}},"egg":{"name":"egg","category":"Food","tags":["food","easter","chicken"],"variants":{"outline":"eb8a","filled":"f678"}},"eggs":{"name":"eggs","category":"Food","tags":["food","chicken","easter"],"variants":{"outline":"f500"}},"elevator-off":{"name":"elevator-off","category":"","tags":["hotel","up","down","service","door","lift"],"variants":{"outline":"f3e8"}},"elevator":{"name":"elevator","category":"","tags":["hotel","up","down","service","door","lift"],"variants":{"outline":"efdf"}},"emergency-bed":{"name":"emergency-bed","category":"Health","tags":["hospital","medical","patient","medicine"],"variants":{"outline":"ef5d"}},"empathize-off":{"name":"empathize-off","category":"Health","tags":["pepole","understund","thinking","care"],"variants":{"outline":"f3e9"}},"empathize":{"name":"empathize","category":"Health","tags":["pepole","understund","thinking","care"],"variants":{"outline":"f29b"}},"emphasis":{"name":"emphasis","category":"Text","tags":["highlight","priority","stress"],"variants":{"outline":"ebcf"}},"engine-off":{"name":"engine-off","category":"Vehicles","tags":["car","motor","automotive","dashboard"],"variants":{"outline":"f120"}},"engine":{"name":"engine","category":"Vehicles","tags":["car","motor","automotive","dashboard"],"variants":{"outline":"ef7e"}},"equal-double":{"name":"equal-double","category":"Math","tags":["coding","programming","code","sign"],"variants":{"outline":"f4e1"}},"equal-not":{"name":"equal-not","category":"Math","tags":["maths","mathematics","equation","different","value"],"variants":{"outline":"ee86"}},"equal":{"name":"equal","category":"Math","tags":["maths","mathematics","equation","same","value"],"variants":{"outline":"ee87"}},"eraser-off":{"name":"eraser-off","category":"Text","tags":["delete","remove","eliminate","wipe-out"],"variants":{"outline":"f121"}},"eraser":{"name":"eraser","category":"Text","tags":["delete","remove","eliminate","wipe-out"],"variants":{"outline":"eb8b"}},"error-404-off":{"name":"error-404-off","category":"Computers","tags":["web","page","not","found","message"],"variants":{"outline":"f122"}},"error-404":{"name":"error-404","category":"Computers","tags":["web","page","not","found","message"],"variants":{"outline":"f027"}},"escalator-down":{"name":"escalator-down","category":"Map","tags":[],"variants":{"outline":"fb04"}},"escalator-up":{"name":"escalator-up","category":"Map","tags":[],"variants":{"outline":"fb05"}},"escalator":{"name":"escalator","category":"Map","tags":[],"variants":{"outline":"fb06"}},"exchange-off":{"name":"exchange-off","category":"","tags":["cantor","money","product","student"],"variants":{"outline":"f123"}},"exchange":{"name":"exchange","category":"","tags":["cantor","money","product","student"],"variants":{"outline":"ebe7"}},"exclamation-circle":{"name":"exclamation-circle","category":"","tags":["warning","error","shape","caution","alert"],"variants":{"outline":"f634","filled":"ff62"}},"exclamation-mark-off":{"name":"exclamation-mark-off","category":"","tags":["warning","caution","alert","danger","!"],"variants":{"outline":"f124"}},"exclamation-mark":{"name":"exclamation-mark","category":"","tags":["warning","caution","alert","danger","!"],"variants":{"outline":"efb4"}},"explicit-off":{"name":"explicit-off","category":"","tags":["adult","content","xxx","curse","words","porn"],"variants":{"outline":"f3ea"}},"explicit":{"name":"explicit","category":"","tags":["adult","content","xxx","curse","words","porn"],"variants":{"outline":"f256"}},"exposure-0":{"name":"exposure-0","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29c"}},"exposure-minus-1":{"name":"exposure-minus-1","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29d"}},"exposure-minus-2":{"name":"exposure-minus-2","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29e"}},"exposure-off":{"name":"exposure-off","category":"Photography","tags":["light","bright","dark","camera"],"variants":{"outline":"f3eb"}},"exposure-plus-1":{"name":"exposure-plus-1","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f29f"}},"exposure-plus-2":{"name":"exposure-plus-2","category":"Photography","tags":["digit","math","number","evaluation"],"variants":{"outline":"f2a0"}},"exposure":{"name":"exposure","category":"Photography","tags":["light","bright","dark","camera"],"variants":{"outline":"eb8c"}},"external-link-off":{"name":"external-link-off","category":"System","tags":["connection","outbound","redirect"],"variants":{"outline":"f125"}},"external-link":{"name":"external-link","category":"System","tags":["connection","outbound","redirect"],"variants":{"outline":"ea99"}},"eye-bitcoin":{"name":"eye-bitcoin","category":"","tags":[],"variants":{"outline":"ff3d"}},"eye-bolt":{"name":"eye-bolt","category":"","tags":[],"variants":{"outline":"fb6d"}},"eye-cancel":{"name":"eye-cancel","category":"","tags":[],"variants":{"outline":"fb6e"}},"eye-check":{"name":"eye-check","category":"System","tags":["sight","visual","view","public","approve"],"variants":{"outline":"ee88"}},"eye-closed":{"name":"eye-closed","category":"System","tags":[],"variants":{"outline":"f7ec"}},"eye-code":{"name":"eye-code","category":"","tags":[],"variants":{"outline":"fb6f"}},"eye-cog":{"name":"eye-cog","category":"System","tags":[],"variants":{"outline":"f7ed"}},"eye-discount":{"name":"eye-discount","category":"","tags":[],"variants":{"outline":"fb70"}},"eye-dollar":{"name":"eye-dollar","category":"","tags":[],"variants":{"outline":"fb71"}},"eye-dotted":{"name":"eye-dotted","category":"","tags":[],"variants":{"outline":"fead"}},"eye-down":{"name":"eye-down","category":"","tags":[],"variants":{"outline":"fb72"}},"eye-edit":{"name":"eye-edit","category":"System","tags":[],"variants":{"outline":"f7ee"}},"eye-exclamation":{"name":"eye-exclamation","category":"System","tags":[],"variants":{"outline":"f7ef"}},"eye-heart":{"name":"eye-heart","category":"System","tags":[],"variants":{"outline":"f7f0"}},"eye-minus":{"name":"eye-minus","category":"","tags":[],"variants":{"outline":"fb73"}},"eye-off":{"name":"eye-off","category":"System","tags":["view","watch"],"variants":{"outline":"ecf0"}},"eye-pause":{"name":"eye-pause","category":"","tags":[],"variants":{"outline":"fb74"}},"eye-pin":{"name":"eye-pin","category":"","tags":[],"variants":{"outline":"fb75"}},"eye-plus":{"name":"eye-plus","category":"","tags":[],"variants":{"outline":"fb76"}},"eye-question":{"name":"eye-question","category":"","tags":[],"variants":{"outline":"fb77"}},"eye-search":{"name":"eye-search","category":"","tags":[],"variants":{"outline":"fb78"}},"eye-share":{"name":"eye-share","category":"","tags":[],"variants":{"outline":"fb79"}},"eye-star":{"name":"eye-star","category":"","tags":[],"variants":{"outline":"fb7a"}},"eye-table":{"name":"eye-table","category":"Health","tags":["vision","sight","text","ophthalmology","disease"],"variants":{"outline":"ef5e"}},"eye-up":{"name":"eye-up","category":"","tags":[],"variants":{"outline":"fb7b"}},"eye-x":{"name":"eye-x","category":"System","tags":[],"variants":{"outline":"f7f1"}},"eye":{"name":"eye","category":"System","tags":["view","watch"],"variants":{"outline":"ea9a","filled":"f679"}},"eyeglass-2":{"name":"eyeglass-2","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"ee89"}},"eyeglass-off":{"name":"eyeglass-off","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"f126"}},"eyeglass":{"name":"eyeglass","category":"Health","tags":["sight","defect","see","vision","frames","lenses","visually","impaired","myopia","far-sighted"],"variants":{"outline":"ee8a"}},"face-id-error":{"name":"face-id-error","category":"","tags":["scan","apple","iphone","ipad"],"variants":{"outline":"efa7"}},"face-id":{"name":"face-id","category":"","tags":["apple","iphone","ipad"],"variants":{"outline":"ea9b"}},"face-mask-off":{"name":"face-mask-off","category":"Health","tags":["coronavirus","virus","medical","hospital","doctor"],"variants":{"outline":"f127"}},"face-mask":{"name":"face-mask","category":"Health","tags":["coronavirus","virus","medical","hospital","doctor"],"variants":{"outline":"efb5"}},"fall":{"name":"fall","category":"Health","tags":["collapse","damage","cliff","height"],"variants":{"outline":"ecb9"}},"favicon":{"name":"favicon","category":"Design","tags":[],"variants":{"outline":"fd65"}},"feather-off":{"name":"feather-off","category":"Nature","tags":["bird","animal","nature"],"variants":{"outline":"f128"}},"feather":{"name":"feather","category":"Nature","tags":["bird","animal","nature"],"variants":{"outline":"ee8b"}},"fence-off":{"name":"fence-off","category":"Buildings","tags":["garden","home","house","farm","wood","barrier"],"variants":{"outline":"f129"}},"fence":{"name":"fence","category":"Buildings","tags":["garden","home","house","farm","wood","barrier"],"variants":{"outline":"ef2a"}},"fidget-spinner":{"name":"fidget-spinner","category":"","tags":["toy","spinning","gadget","kids","children","loader","loading"],"variants":{"outline":"f068"}},"file-3d":{"name":"file-3d","category":"Document","tags":["model","document"],"variants":{"outline":"f032"}},"file-alert":{"name":"file-alert","category":"Document","tags":["danger","risk","warning","check","caution","document","error"],"variants":{"outline":"ede6"}},"file-analytics":{"name":"file-analytics","category":"Document","tags":["data","statistics","report","chart","document","paper"],"variants":{"outline":"ede7"}},"file-arrow-left":{"name":"file-arrow-left","category":"Document","tags":["document","import","page","move"],"variants":{"outline":"f033"}},"file-arrow-right":{"name":"file-arrow-right","category":"Document","tags":["document","export","page","move"],"variants":{"outline":"f034"}},"file-barcode":{"name":"file-barcode","category":"Document","tags":["document","code","qr","ticket","scan"],"variants":{"outline":"f035"}},"file-broken":{"name":"file-broken","category":"Document","tags":["document","error","demaged","delete"],"variants":{"outline":"f501"}},"file-certificate":{"name":"file-certificate","category":"Document","tags":["certificate","license","diploma","document","format","data","paper"],"variants":{"outline":"ed4d"}},"file-chart":{"name":"file-chart","category":"Document","tags":["data","graph","analytics"],"variants":{"outline":"f036"}},"file-check":{"name":"file-check","category":"Document","tags":["list","document","accept","done","tick","checkmark"],"variants":{"outline":"ea9c"}},"file-code-2":{"name":"file-code-2","category":"Document","tags":["programming","document","developer","technology"],"variants":{"outline":"ede8"}},"file-code":{"name":"file-code","category":"Document","tags":["paper","new"],"variants":{"outline":"ebd0"}},"file-cv":{"name":"file-cv","category":"Document","tags":[],"variants":{"outline":"fa5a"}},"file-database":{"name":"file-database","category":"Document","tags":["data","storage","folder","format","server"],"variants":{"outline":"f037"}},"file-delta":{"name":"file-delta","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53d"}},"file-description":{"name":"file-description","category":"Document","tags":["text","paper","report","details","job"],"variants":{"outline":"f028"}},"file-diff":{"name":"file-diff","category":"Document","tags":["add","create","new"],"variants":{"outline":"ecf1"}},"file-digit":{"name":"file-digit","category":"Document","tags":["boolean","binary","exe"],"variants":{"outline":"efa8"}},"file-dislike":{"name":"file-dislike","category":"Document","tags":["rejected","document"],"variants":{"outline":"ed2a"}},"file-dollar":{"name":"file-dollar","category":"Document","tags":["money","finance","invoice"],"variants":{"outline":"efe0"}},"file-dots":{"name":"file-dots","category":"Document","tags":["more","menu","info"],"variants":{"outline":"f038"}},"file-download":{"name":"file-download","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ea9d"}},"file-euro":{"name":"file-euro","category":"Document","tags":["money","finance","buisness"],"variants":{"outline":"efe1"}},"file-excel":{"name":"file-excel","category":"","tags":[],"variants":{"outline":"fef3"}},"file-export":{"name":"file-export","category":"Document","tags":["arrow","data","paper","document","format"],"variants":{"outline":"ede9"}},"file-function":{"name":"file-function","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53e"}},"file-horizontal":{"name":"file-horizontal","category":"Document","tags":["paper","new"],"variants":{"outline":"ebb0"}},"file-import":{"name":"file-import","category":"Document","tags":["arrow","data","paper","document","format"],"variants":{"outline":"edea"}},"file-infinity":{"name":"file-infinity","category":"Document","tags":["document","eternity","sync","loop"],"variants":{"outline":"f502"}},"file-info":{"name":"file-info","category":"Document","tags":["info","information","informations","paper","file","document","page"],"variants":{"outline":"edec"}},"file-invoice":{"name":"file-invoice","category":"Document","tags":["accounting","bill","statement","settlement","finance"],"variants":{"outline":"eb67"}},"file-isr":{"name":"file-isr","category":"Document","tags":[],"variants":{"outline":"feac"}},"file-lambda":{"name":"file-lambda","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f53f"}},"file-like":{"name":"file-like","category":"Document","tags":["approved","document"],"variants":{"outline":"ed2b"}},"file-minus":{"name":"file-minus","category":"Document","tags":["remove","delete"],"variants":{"outline":"ea9e"}},"file-music":{"name":"file-music","category":"Document","tags":["mp3","wma","wav"],"variants":{"outline":"ea9f"}},"file-neutral":{"name":"file-neutral","category":"","tags":[],"variants":{"outline":"fd22"}},"file-off":{"name":"file-off","category":"Document","tags":["paper","new"],"variants":{"outline":"ecf2"}},"file-orientation":{"name":"file-orientation","category":"Document","tags":["document","arrow","change","modify","page"],"variants":{"outline":"f2a1"}},"file-pencil":{"name":"file-pencil","category":"Document","tags":["edit","write","editing","text"],"variants":{"outline":"f039"}},"file-percent":{"name":"file-percent","category":"Document","tags":["data","document","extension","paper"],"variants":{"outline":"f540"}},"file-phone":{"name":"file-phone","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ecdc"}},"file-plus":{"name":"file-plus","category":"Document","tags":["add","create","new"],"variants":{"outline":"eaa0"}},"file-power":{"name":"file-power","category":"Document","tags":["archive","energy","battery","ecology"],"variants":{"outline":"f03a"}},"file-report":{"name":"file-report","category":"Document","tags":["stats","data","paper","document","chart","format"],"variants":{"outline":"eded"}},"file-rss":{"name":"file-rss","category":"Document","tags":["extension","format","news"],"variants":{"outline":"f03b"}},"file-sad":{"name":"file-sad","category":"","tags":[],"variants":{"outline":"fd23"}},"file-scissors":{"name":"file-scissors","category":"Document","tags":["cut","cutting","tool","cutter","office"],"variants":{"outline":"f03c"}},"file-search":{"name":"file-search","category":"Document","tags":["search","data","paper","document","format"],"variants":{"outline":"ed5d"}},"file-settings":{"name":"file-settings","category":"Document","tags":["edit","options","configuration","control"],"variants":{"outline":"f029"}},"file-shredder":{"name":"file-shredder","category":"Document","tags":["shred","destroy","cut"],"variants":{"outline":"eaa1"}},"file-signal":{"name":"file-signal","category":"Document","tags":["wi-fi","connection","internet","online","connected"],"variants":{"outline":"f03d"}},"file-smile":{"name":"file-smile","category":"","tags":[],"variants":{"outline":"fd24"}},"file-spreadsheet":{"name":"file-spreadsheet","category":"Document","tags":["table","extension","excel","format"],"variants":{"outline":"f03e"}},"file-stack":{"name":"file-stack","category":"Document","tags":["document","duplicate","data","add"],"variants":{"outline":"f503"}},"file-star":{"name":"file-star","category":"Document","tags":["favourite","bookmark","like"],"variants":{"outline":"f03f"}},"file-symlink":{"name":"file-symlink","category":"Document","tags":["text","format","extension","document"],"variants":{"outline":"ed53"}},"file-text-ai":{"name":"file-text-ai","category":"Document","tags":[],"variants":{"outline":"fa27"}},"file-text":{"name":"file-text","category":"Document","tags":["data","pdf","txt"],"variants":{"outline":"eaa2"}},"file-time":{"name":"file-time","category":"Document","tags":["clock","planning","history","watch"],"variants":{"outline":"f040"}},"file-type-bmp":{"name":"file-type-bmp","category":"Document","tags":[],"variants":{"outline":"fb07"}},"file-type-css":{"name":"file-type-css","category":"Document","tags":[],"variants":{"outline":"fb08"}},"file-type-csv":{"name":"file-type-csv","category":"Document","tags":[],"variants":{"outline":"fb09"}},"file-type-doc":{"name":"file-type-doc","category":"Document","tags":[],"variants":{"outline":"fb0a"}},"file-type-docx":{"name":"file-type-docx","category":"Document","tags":[],"variants":{"outline":"fb0b"}},"file-type-html":{"name":"file-type-html","category":"Document","tags":[],"variants":{"outline":"fb0c"}},"file-type-jpg":{"name":"file-type-jpg","category":"Document","tags":[],"variants":{"outline":"fb0d"}},"file-type-js":{"name":"file-type-js","category":"Document","tags":[],"variants":{"outline":"fb0e"}},"file-type-jsx":{"name":"file-type-jsx","category":"Document","tags":[],"variants":{"outline":"fb0f"}},"file-type-pdf":{"name":"file-type-pdf","category":"Document","tags":[],"variants":{"outline":"fb10"}},"file-type-php":{"name":"file-type-php","category":"Document","tags":[],"variants":{"outline":"fb11"}},"file-type-png":{"name":"file-type-png","category":"Document","tags":[],"variants":{"outline":"fb12"}},"file-type-ppt":{"name":"file-type-ppt","category":"Document","tags":[],"variants":{"outline":"fb13"}},"file-type-rs":{"name":"file-type-rs","category":"Document","tags":[],"variants":{"outline":"fb14"}},"file-type-sql":{"name":"file-type-sql","category":"Document","tags":[],"variants":{"outline":"fb15"}},"file-type-svg":{"name":"file-type-svg","category":"Document","tags":[],"variants":{"outline":"fb16"}},"file-type-ts":{"name":"file-type-ts","category":"Document","tags":[],"variants":{"outline":"fb17"}},"file-type-tsx":{"name":"file-type-tsx","category":"Document","tags":[],"variants":{"outline":"fb18"}},"file-type-txt":{"name":"file-type-txt","category":"Document","tags":[],"variants":{"outline":"fb19"}},"file-type-vue":{"name":"file-type-vue","category":"Document","tags":[],"variants":{"outline":"fb1a"}},"file-type-xls":{"name":"file-type-xls","category":"Document","tags":[],"variants":{"outline":"fb1b"}},"file-type-xml":{"name":"file-type-xml","category":"Document","tags":[],"variants":{"outline":"fb1c"}},"file-type-zip":{"name":"file-type-zip","category":"Document","tags":[],"variants":{"outline":"fb1d"}},"file-typography":{"name":"file-typography","category":"Document","tags":["font","text","format","type","size"],"variants":{"outline":"f041"}},"file-unknown":{"name":"file-unknown","category":"Document","tags":["missing","unidentified","anonymous"],"variants":{"outline":"f042"}},"file-upload":{"name":"file-upload","category":"Document","tags":["save","transfer","input"],"variants":{"outline":"ec91"}},"file-vector":{"name":"file-vector","category":"Document","tags":["graphic","eps","format","svg"],"variants":{"outline":"f043"}},"file-word":{"name":"file-word","category":"","tags":[],"variants":{"outline":"fef2"}},"file-x":{"name":"file-x","category":"Document","tags":["remove","delete","erase"],"variants":{"outline":"eaa3","filled":"f748"}},"file-zip":{"name":"file-zip","category":"Document","tags":["forms","documents","stack","letter","archive","rar","zipped","extention","bundle","format"],"variants":{"outline":"ed4e"}},"file":{"name":"file","category":"Document","tags":["paper","new"],"variants":{"outline":"eaa4","filled":"f747"}},"files-off":{"name":"files-off","category":"Document","tags":["forms","documents","stack","letter"],"variants":{"outline":"edee"}},"files":{"name":"files","category":"Document","tags":["forms","documents","stack","letter"],"variants":{"outline":"edef"}},"filter-bolt":{"name":"filter-bolt","category":"","tags":[],"variants":{"outline":"fb7c"}},"filter-cancel":{"name":"filter-cancel","category":"","tags":[],"variants":{"outline":"fb7d"}},"filter-check":{"name":"filter-check","category":"","tags":[],"variants":{"outline":"fb7e"}},"filter-code":{"name":"filter-code","category":"","tags":[],"variants":{"outline":"fb7f"}},"filter-cog":{"name":"filter-cog","category":"System","tags":[],"variants":{"outline":"f9fe"}},"filter-discount":{"name":"filter-discount","category":"","tags":[],"variants":{"outline":"fb80"}},"filter-dollar":{"name":"filter-dollar","category":"System","tags":[],"variants":{"outline":"f9ff"}},"filter-down":{"name":"filter-down","category":"","tags":[],"variants":{"outline":"fb81"}},"filter-edit":{"name":"filter-edit","category":"System","tags":[],"variants":{"outline":"fa00"}},"filter-exclamation":{"name":"filter-exclamation","category":"","tags":[],"variants":{"outline":"fb82"}},"filter-heart":{"name":"filter-heart","category":"","tags":[],"variants":{"outline":"fb83"}},"filter-minus":{"name":"filter-minus","category":"System","tags":[],"variants":{"outline":"fa01"}},"filter-off":{"name":"filter-off","category":"System","tags":["funnel","hopper","filtration"],"variants":{"outline":"ed2c"}},"filter-pause":{"name":"filter-pause","category":"","tags":[],"variants":{"outline":"fb84"}},"filter-pin":{"name":"filter-pin","category":"","tags":[],"variants":{"outline":"fb85"}},"filter-plus":{"name":"filter-plus","category":"System","tags":[],"variants":{"outline":"fa02"}},"filter-question":{"name":"filter-question","category":"","tags":[],"variants":{"outline":"fb86"}},"filter-search":{"name":"filter-search","category":"","tags":[],"variants":{"outline":"fb87"}},"filter-share":{"name":"filter-share","category":"","tags":[],"variants":{"outline":"fb88"}},"filter-star":{"name":"filter-star","category":"System","tags":[],"variants":{"outline":"fa03"}},"filter-up":{"name":"filter-up","category":"","tags":[],"variants":{"outline":"fb89"}},"filter-x":{"name":"filter-x","category":"System","tags":[],"variants":{"outline":"fa04"}},"filter":{"name":"filter","category":"System","tags":["funnel","hopper","filtration"],"variants":{"outline":"eaa5","filled":"fc27"}},"filters":{"name":"filters","category":"","tags":["design","editing","effects"],"variants":{"outline":"f793"}},"fingerprint-off":{"name":"fingerprint-off","category":"System","tags":["indentify","mark","surface","security","access"],"variants":{"outline":"f12a"}},"fingerprint-scan":{"name":"fingerprint-scan","category":"","tags":[],"variants":{"outline":"fcb5"}},"fingerprint":{"name":"fingerprint","category":"System","tags":["indentify","mark","surface","security","access"],"variants":{"outline":"ebd1"}},"fire-extinguisher":{"name":"fire-extinguisher","category":"","tags":[],"variants":{"outline":"faf6"}},"fire-hydrant-off":{"name":"fire-hydrant-off","category":"Map","tags":["water","emergency","fireman","safety","urban"],"variants":{"outline":"f3ec"}},"fire-hydrant":{"name":"fire-hydrant","category":"Map","tags":["water","emergency","fireman","safety","urban"],"variants":{"outline":"f3a9"}},"firetruck":{"name":"firetruck","category":"Vehicles","tags":["help","rescuer","vehicle","fireman","extinguishing"],"variants":{"outline":"ebe8"}},"first-aid-kit-off":{"name":"first-aid-kit-off","category":"Health","tags":["medical","healthcare","hospital","health"],"variants":{"outline":"f3ed"}},"first-aid-kit":{"name":"first-aid-kit","category":"Health","tags":["medical","healthcare","hospital","health"],"variants":{"outline":"ef5f"}},"fish-bone":{"name":"fish-bone","category":"Animals","tags":["food","skeleton","cat","sea"],"variants":{"outline":"f287"}},"fish-christianity":{"name":"fish-christianity","category":"Symbols","tags":["religion","jesus","faith","christian"],"variants":{"outline":"f58b"}},"fish-hook-off":{"name":"fish-hook-off","category":"","tags":["fishing","bait","hanging","catch","water"],"variants":{"outline":"f3ee"}},"fish-hook":{"name":"fish-hook","category":"","tags":["fishing","bait","hanging","catch","water"],"variants":{"outline":"f1f9"}},"fish-off":{"name":"fish-off","category":"Animals","tags":["food","sea","animal","fishing","ocean","sushi"],"variants":{"outline":"f12b"}},"fish":{"name":"fish","category":"Animals","tags":["food","sea","animal","fishing","ocean","sushi"],"variants":{"outline":"ef2b"}},"flag-2-off":{"name":"flag-2-off","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"f12c"}},"flag-2":{"name":"flag-2","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"ee8c","filled":"f707"}},"flag-3":{"name":"flag-3","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"ee8d","filled":"f708"}},"flag-bitcoin":{"name":"flag-bitcoin","category":"","tags":[],"variants":{"outline":"ff3c"}},"flag-bolt":{"name":"flag-bolt","category":"","tags":[],"variants":{"outline":"fb8a"}},"flag-cancel":{"name":"flag-cancel","category":"","tags":[],"variants":{"outline":"fb8b"}},"flag-check":{"name":"flag-check","category":"","tags":[],"variants":{"outline":"fb8c"}},"flag-code":{"name":"flag-code","category":"","tags":[],"variants":{"outline":"fb8d"}},"flag-cog":{"name":"flag-cog","category":"","tags":[],"variants":{"outline":"fb8e"}},"flag-discount":{"name":"flag-discount","category":"","tags":[],"variants":{"outline":"fb8f"}},"flag-dollar":{"name":"flag-dollar","category":"","tags":[],"variants":{"outline":"fb90"}},"flag-down":{"name":"flag-down","category":"","tags":[],"variants":{"outline":"fb91"}},"flag-exclamation":{"name":"flag-exclamation","category":"","tags":[],"variants":{"outline":"fb92"}},"flag-heart":{"name":"flag-heart","category":"","tags":[],"variants":{"outline":"fb93"}},"flag-minus":{"name":"flag-minus","category":"","tags":[],"variants":{"outline":"fb94"}},"flag-off":{"name":"flag-off","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"f12d"}},"flag-pause":{"name":"flag-pause","category":"","tags":[],"variants":{"outline":"fb95"}},"flag-pin":{"name":"flag-pin","category":"","tags":[],"variants":{"outline":"fb96"}},"flag-plus":{"name":"flag-plus","category":"","tags":[],"variants":{"outline":"fb97"}},"flag-question":{"name":"flag-question","category":"","tags":[],"variants":{"outline":"fb98"}},"flag-search":{"name":"flag-search","category":"","tags":[],"variants":{"outline":"fb99"}},"flag-share":{"name":"flag-share","category":"","tags":[],"variants":{"outline":"fb9a"}},"flag-star":{"name":"flag-star","category":"","tags":[],"variants":{"outline":"fb9b"}},"flag-up":{"name":"flag-up","category":"","tags":[],"variants":{"outline":"fb9c"}},"flag-x":{"name":"flag-x","category":"","tags":[],"variants":{"outline":"fb9d"}},"flag":{"name":"flag","category":"Map","tags":["banner","pin","report","map","warning","alert"],"variants":{"outline":"eaa6","filled":"f67a"}},"flame-off":{"name":"flame-off","category":"","tags":["fire","fireplace","light","burn","bonfire","smoke","barbecue"],"variants":{"outline":"f12e"}},"flame":{"name":"flame","category":"","tags":["fire","fireplace","light","burn","bonfire","smoke","barbecue"],"variants":{"outline":"ec2c"}},"flare":{"name":"flare","category":"Weather","tags":["shine","flare","heat","sunlight","hot","sun"],"variants":{"outline":"ee8e"}},"flask-2-off":{"name":"flask-2-off","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f12f"}},"flask-2":{"name":"flask-2","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"ef60","filled":"fd12"}},"flask-off":{"name":"flask-off","category":"Health","tags":["liquid","container","glass","chemistry"],"variants":{"outline":"f130"}},"flask":{"name":"flask","category":"Health","tags":["liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"ebd2","filled":"fd13"}},"flip-flops":{"name":"flip-flops","category":"","tags":["summer","sand","sandals","beach","shoes"],"variants":{"outline":"f564"}},"flip-horizontal":{"name":"flip-horizontal","category":"Design","tags":["mirror","rotate"],"variants":{"outline":"eaa7"}},"flip-vertical":{"name":"flip-vertical","category":"Design","tags":["mirror","rotate"],"variants":{"outline":"eaa8"}},"float-center":{"name":"float-center","category":"Text","tags":["position"],"variants":{"outline":"ebb1"}},"float-left":{"name":"float-left","category":"Text","tags":["position"],"variants":{"outline":"ebb2"}},"float-none":{"name":"float-none","category":"Text","tags":["position"],"variants":{"outline":"ed13"}},"float-right":{"name":"float-right","category":"Text","tags":["position"],"variants":{"outline":"ebb3"}},"flower-off":{"name":"flower-off","category":"Nature","tags":["plant","garden","rose","lotus"],"variants":{"outline":"f131"}},"flower":{"name":"flower","category":"Nature","tags":["plant","garden","rose","lotus"],"variants":{"outline":"eff6"}},"focus-2":{"name":"focus-2","category":"Photography","tags":["spotlight","attention","center","aim","target"],"variants":{"outline":"ebd3"}},"focus-auto":{"name":"focus-auto","category":"Photography","tags":[],"variants":{"outline":"fa62"}},"focus-centered":{"name":"focus-centered","category":"","tags":["filter","photo","photography","camera","image"],"variants":{"outline":"f02a"}},"focus":{"name":"focus","category":"Photography","tags":["target","bullseye","aim"],"variants":{"outline":"eb8d"}},"fold-down":{"name":"fold-down","category":"Arrows","tags":["arrow","move","toggle"],"variants":{"outline":"ed54"}},"fold-up":{"name":"fold-up","category":"Arrows","tags":["arrow","move","toggle"],"variants":{"outline":"ed55"}},"fold":{"name":"fold","category":"Arrows","tags":["arrow","move","merge"],"variants":{"outline":"ed56"}},"folder-bolt":{"name":"folder-bolt","category":"Document","tags":[],"variants":{"outline":"f90c"}},"folder-cancel":{"name":"folder-cancel","category":"Document","tags":[],"variants":{"outline":"f90d"}},"folder-check":{"name":"folder-check","category":"Document","tags":[],"variants":{"outline":"f90e"}},"folder-code":{"name":"folder-code","category":"Document","tags":[],"variants":{"outline":"f90f"}},"folder-cog":{"name":"folder-cog","category":"Document","tags":[],"variants":{"outline":"f910"}},"folder-dollar":{"name":"folder-dollar","category":"Document","tags":[],"variants":{"outline":"f911"}},"folder-down":{"name":"folder-down","category":"Document","tags":[],"variants":{"outline":"f912"}},"folder-exclamation":{"name":"folder-exclamation","category":"Document","tags":[],"variants":{"outline":"f913"}},"folder-heart":{"name":"folder-heart","category":"Document","tags":[],"variants":{"outline":"f914"}},"folder-minus":{"name":"folder-minus","category":"Document","tags":["directory","dir"],"variants":{"outline":"eaaa"}},"folder-off":{"name":"folder-off","category":"Document","tags":["cancel","no","directory","dir"],"variants":{"outline":"ed14"}},"folder-open":{"name":"folder-open","category":"","tags":[],"variants":{"outline":"faf7"}},"folder-pause":{"name":"folder-pause","category":"Document","tags":[],"variants":{"outline":"f915"}},"folder-pin":{"name":"folder-pin","category":"Document","tags":[],"variants":{"outline":"f916"}},"folder-plus":{"name":"folder-plus","category":"Document","tags":["add","create","new","directory","dir"],"variants":{"outline":"eaab"}},"folder-question":{"name":"folder-question","category":"Document","tags":[],"variants":{"outline":"f917"}},"folder-root":{"name":"folder-root","category":"","tags":[],"variants":{"outline":"fd43"}},"folder-search":{"name":"folder-search","category":"Document","tags":[],"variants":{"outline":"f918"}},"folder-share":{"name":"folder-share","category":"Document","tags":[],"variants":{"outline":"f919"}},"folder-star":{"name":"folder-star","category":"Document","tags":[],"variants":{"outline":"f91a"}},"folder-symlink":{"name":"folder-symlink","category":"","tags":[],"variants":{"outline":"f91b"}},"folder-up":{"name":"folder-up","category":"Document","tags":[],"variants":{"outline":"f91c"}},"folder-x":{"name":"folder-x","category":"Document","tags":["directory","dir"],"variants":{"outline":"eaac"}},"folder":{"name":"folder","category":"Document","tags":["cancel","no","directory","dir"],"variants":{"outline":"eaad","filled":"f749"}},"folders-off":{"name":"folders-off","category":"Document","tags":["directory","dir","clone","copy"],"variants":{"outline":"f133"}},"folders":{"name":"folders","category":"Document","tags":["directory","dir","clone","copy"],"variants":{"outline":"eaae"}},"forbid-2":{"name":"forbid-2","category":"","tags":[],"variants":{"outline":"ebd4","filled":"fc28"}},"forbid":{"name":"forbid","category":"","tags":[],"variants":{"outline":"ebd5","filled":"fc29"}},"forklift":{"name":"forklift","category":"Vehicles","tags":["store","warehouse","inventory","exporting"],"variants":{"outline":"ebe9"}},"forms":{"name":"forms","category":"Text","tags":["formbuilder","input","url","textarea"],"variants":{"outline":"ee8f"}},"fountain-off":{"name":"fountain-off","category":"Map","tags":["park","decoration","water","spring","public"],"variants":{"outline":"f134"}},"fountain":{"name":"fountain","category":"Map","tags":["park","decoration","water","spring","public"],"variants":{"outline":"f09b","filled":"fc2a"}},"frame-off":{"name":"frame-off","category":"Design","tags":["borderless","outlineless","no-border","unframed","unbordered","bare","naked","borderless-frame","no-outline","remove-frame","crop"],"variants":{"outline":"f135"}},"frame":{"name":"frame","category":"Design","tags":["border","outline","enclosure","surround","edge","boundary","perimeter","framework","structure","container","crop"],"variants":{"outline":"eaaf"}},"free-rights":{"name":"free-rights","category":"","tags":["justice","inviolability","freedom"],"variants":{"outline":"efb6"}},"freeze-column":{"name":"freeze-column","category":"Design","tags":[],"variants":{"outline":"fa63"}},"freeze-row-column":{"name":"freeze-row-column","category":"Design","tags":[],"variants":{"outline":"fa64"}},"freeze-row":{"name":"freeze-row","category":"Design","tags":[],"variants":{"outline":"fa65"}},"fridge-off":{"name":"fridge-off","category":"Devices","tags":["kitchen","cooler","control","freezer","food"],"variants":{"outline":"f3ef"}},"fridge":{"name":"fridge","category":"Devices","tags":["kitchen","cooler","control","freezer","food"],"variants":{"outline":"f1fa"}},"friends-off":{"name":"friends-off","category":"","tags":["people","boy","girl","man","woman"],"variants":{"outline":"f136"}},"friends":{"name":"friends","category":"","tags":["people","boy","girl","man","woman"],"variants":{"outline":"eab0"}},"frustum-off":{"name":"frustum-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9d"}},"frustum-plus":{"name":"frustum-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9e"}},"frustum":{"name":"frustum","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fa9f"}},"function-off":{"name":"function-off","category":"Math","tags":["math","linear","statyscics","graph"],"variants":{"outline":"f3f0"}},"function":{"name":"function","category":"Math","tags":["math","linear","statyscics","graph"],"variants":{"outline":"f225","filled":"fc2b"}},"galaxy":{"name":"galaxy","category":"","tags":[],"variants":{"outline":"fcb6"}},"garden-cart-off":{"name":"garden-cart-off","category":"Vehicles","tags":["gardening","conctruction","wheel","wheelbarrow"],"variants":{"outline":"f3f1"}},"garden-cart":{"name":"garden-cart","category":"Vehicles","tags":["gardening","conctruction","wheel","wheelbarrow"],"variants":{"outline":"f23e"}},"gas-station-off":{"name":"gas-station-off","category":"Map","tags":["fuel","oil","cars","vehicles","shop","distributor"],"variants":{"outline":"f137"}},"gas-station":{"name":"gas-station","category":"Vehicles","tags":["fuel","oil","cars","vehicles","shop","distributor"],"variants":{"outline":"ec7d"}},"gauge-off":{"name":"gauge-off","category":"System","tags":["car","dashboard"],"variants":{"outline":"f138"}},"gauge":{"name":"gauge","category":"System","tags":["car","dashboard"],"variants":{"outline":"eab1","filled":"fc2c"}},"gavel":{"name":"gavel","category":"","tags":["justice","law","hammer","legal","auction"],"variants":{"outline":"ef90"}},"gender-agender":{"name":"gender-agender","category":"Gender","tags":["identity","genderless"],"variants":{"outline":"f0e1"}},"gender-androgyne":{"name":"gender-androgyne","category":"Gender","tags":["identity","intersex","feminine","genderqueer"],"variants":{"outline":"f0e2"}},"gender-bigender":{"name":"gender-bigender","category":"Gender","tags":["identity","female","bi","sexual"],"variants":{"outline":"f0e3"}},"gender-demiboy":{"name":"gender-demiboy","category":"Gender","tags":["identity","demimale","demi"],"variants":{"outline":"f0e4"}},"gender-demigirl":{"name":"gender-demigirl","category":"Gender","tags":["identity","demiwoman","demifemale"],"variants":{"outline":"f0e5"}},"gender-epicene":{"name":"gender-epicene","category":"Gender","tags":["identity","genderqueer","transgender"],"variants":{"outline":"f0e6"}},"gender-female":{"name":"gender-female","category":"Gender","tags":["identity","woman","girl"],"variants":{"outline":"f0e7"}},"gender-femme":{"name":"gender-femme","category":"Gender","tags":["identity","lesbian"],"variants":{"outline":"f0e8"}},"gender-genderfluid":{"name":"gender-genderfluid","category":"Gender","tags":["identity","indefinite"],"variants":{"outline":"f0e9"}},"gender-genderless":{"name":"gender-genderless","category":"Gender","tags":["identity","unisex"],"variants":{"outline":"f0ea"}},"gender-genderqueer":{"name":"gender-genderqueer","category":"Gender","tags":["identity","non binary"],"variants":{"outline":"f0eb"}},"gender-hermaphrodite":{"name":"gender-hermaphrodite","category":"Gender","tags":["identify","intersexuality","hybrid"],"variants":{"outline":"f0ec"}},"gender-intergender":{"name":"gender-intergender","category":"Gender","tags":["identity","transgender","intersex"],"variants":{"outline":"f0ed"}},"gender-male":{"name":"gender-male","category":"Gender","tags":["identity","man","boy","person"],"variants":{"outline":"f0ee"}},"gender-neutrois":{"name":"gender-neutrois","category":"Gender","tags":["identity","none","transgender"],"variants":{"outline":"f0ef"}},"gender-third":{"name":"gender-third","category":"Gender","tags":["identity","none","female"],"variants":{"outline":"f0f0"}},"gender-transgender":{"name":"gender-transgender","category":"Gender","tags":["identity","ladyboy","lgbt","gay","homosexual"],"variants":{"outline":"f0f1"}},"gender-trasvesti":{"name":"gender-trasvesti","category":"Gender","tags":["identity","birth","male","female","heterosexual","homosexual"],"variants":{"outline":"f0f2"}},"geometry":{"name":"geometry","category":"Map","tags":["build","architecture","create","compass"],"variants":{"outline":"ee90"}},"ghost-2":{"name":"ghost-2","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"f57c","filled":"f74a"}},"ghost-3":{"name":"ghost-3","category":"","tags":[],"variants":{"outline":"fc13"}},"ghost-off":{"name":"ghost-off","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"f3f2"}},"ghost":{"name":"ghost","category":"","tags":["spirit","transparent","fairytale","horror","movie","shadow","haunt"],"variants":{"outline":"eb8e","filled":"f74b"}},"gif":{"name":"gif","category":"Extensions","tags":["file","format","animation","image","extension","filetype"],"variants":{"outline":"f257"}},"gift-card":{"name":"gift-card","category":"","tags":["coupon","present","voucher","shopping","birthday"],"variants":{"outline":"f3aa","filled":"fc2d"}},"gift-off":{"name":"gift-off","category":"","tags":["present","birthday","celebration","wish","bonus","souvenire","surprise"],"variants":{"outline":"f3f3"}},"gift":{"name":"gift","category":"","tags":["present","birthday","celebration","wish","bonus","souvenire","surprise"],"variants":{"outline":"eb68","filled":"fd14"}},"git-branch-deleted":{"name":"git-branch-deleted","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"f57d"}},"git-branch":{"name":"git-branch","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab2"}},"git-cherry-pick":{"name":"git-cherry-pick","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"f57e"}},"git-commit":{"name":"git-commit","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab3"}},"git-compare":{"name":"git-compare","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab4"}},"git-fork":{"name":"git-fork","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eb8f"}},"git-merge":{"name":"git-merge","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab5"}},"git-pull-request-closed":{"name":"git-pull-request-closed","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"ef7f"}},"git-pull-request-draft":{"name":"git-pull-request-draft","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"efb7"}},"git-pull-request":{"name":"git-pull-request","category":"Version control","tags":["code","version control","command"],"variants":{"outline":"eab6"}},"gizmo":{"name":"gizmo","category":"","tags":["system","network","tech","connection"],"variants":{"outline":"f02b"}},"glass-champagne":{"name":"glass-champagne","category":"","tags":[],"variants":{"outline":"fd9c"}},"glass-cocktail":{"name":"glass-cocktail","category":"","tags":[],"variants":{"outline":"fd9d"}},"glass-full":{"name":"glass-full","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"eab7","filled":"fc2e"}},"glass-gin":{"name":"glass-gin","category":"","tags":[],"variants":{"outline":"fd9e"}},"glass-off":{"name":"glass-off","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"ee91"}},"glass":{"name":"glass","category":"Food","tags":["wine","cup","goblet"],"variants":{"outline":"eab8"}},"globe-off":{"name":"globe-off","category":"Map","tags":["world","travel","journey","trip","planet","earth"],"variants":{"outline":"f139"}},"globe":{"name":"globe","category":"Map","tags":["world","travel","journey","trip","planet","earth"],"variants":{"outline":"eab9","filled":"fc2f"}},"go-game":{"name":"go-game","category":"","tags":["strategy","board","mind"],"variants":{"outline":"f512"}},"golf-off":{"name":"golf-off","category":"Sport","tags":["game","ball","play","hole","club-and-ball","stroke","luxury","pitch"],"variants":{"outline":"f13a"}},"golf":{"name":"golf","category":"Sport","tags":["game","ball","play","hole","club-and-ball","stroke","luxury","pitch"],"variants":{"outline":"ed8c"}},"gps":{"name":"gps","category":"Map","tags":["navigation","directions","global","positioning","system","satnav","radionavigation","travel","car"],"variants":{"outline":"ed7a","filled":"fe48"}},"gradienter":{"name":"gradienter","category":"","tags":[],"variants":{"outline":"f3ab"}},"grain":{"name":"grain","category":"","tags":["dots","pattern","random","round","circle","nodes"],"variants":{"outline":"ee92"}},"graph-off":{"name":"graph-off","category":"","tags":["analytics","raport","statistics","chart"],"variants":{"outline":"f3f4"}},"graph":{"name":"graph","category":"","tags":["analytics","raport","statistics","chart"],"variants":{"outline":"f288","filled":"fd15"}},"grave-2":{"name":"grave-2","category":"Map","tags":["cementry","halloween","death","dead","tomb"],"variants":{"outline":"f57f"}},"grave":{"name":"grave","category":"Map","tags":["cemetery","halloween","death","dead","tomb"],"variants":{"outline":"f580"}},"grid-3x3":{"name":"grid-3x3","category":"Design","tags":["layout","pattern","matrix","arrangement","gridlines","cell","structure","block","squares","grid-pattern"],"variants":{"outline":"fca4"}},"grid-4x4":{"name":"grid-4x4","category":"Design","tags":["layout","matrix","pattern","gridlines","arrangement","structure","block","squares","four-by-four","grid-pattern"],"variants":{"outline":"fca5"}},"grid-dots":{"name":"grid-dots","category":"System","tags":["network","pattern","layout"],"variants":{"outline":"eaba"}},"grid-goldenratio":{"name":"grid-goldenratio","category":"Design","tags":["layout","pattern","matrix","arrangement","golden-ratio","cell","structure","ratio","gridlines","grid-structure"],"variants":{"outline":"fca6"}},"grid-pattern":{"name":"grid-pattern","category":"","tags":["grid","mesh","net","line"],"variants":{"outline":"efc9"}},"grid-scan":{"name":"grid-scan","category":"System","tags":["data","matrix","layout","pattern","dimension","analysis","structure","mapping","inspection","grid-data"],"variants":{"outline":"fca7"}},"grill-fork":{"name":"grill-fork","category":"Food","tags":["cook","cooking","bbq","meat","tool"],"variants":{"outline":"f35b"}},"grill-off":{"name":"grill-off","category":"Food","tags":["food","sasuage","beef","steak","bbq","cooking"],"variants":{"outline":"f3f5"}},"grill-spatula":{"name":"grill-spatula","category":"Food","tags":["cook","cooking","bbq","meat","tool"],"variants":{"outline":"f35c"}},"grill":{"name":"grill","category":"Food","tags":["food","sasuage","beef","steak","bbq","cooking"],"variants":{"outline":"efa9"}},"grip-horizontal":{"name":"grip-horizontal","category":"System","tags":["picture","abstract","symbol","design","across","dots","drag"],"variants":{"outline":"ec00"}},"grip-vertical":{"name":"grip-vertical","category":"System","tags":["picture","abstract","symbol","design","upright","dots","drag"],"variants":{"outline":"ec01"}},"growth":{"name":"growth","category":"Nature","tags":["seed","harvest","plant","tree","flower","grain","greenery","garden"],"variants":{"outline":"ee93"}},"guitar-pick":{"name":"guitar-pick","category":"","tags":["music","instrument","melody","accesories"],"variants":{"outline":"f4c6","filled":"f67b"}},"gymnastics":{"name":"gymnastics","category":"","tags":[],"variants":{"outline":"fd44"}},"h-1":{"name":"h-1","category":"Text","tags":["header","text","editor","h1","heading","typography"],"variants":{"outline":"ec94"}},"h-2":{"name":"h-2","category":"Text","tags":["header","text","editor","h2","heading","typography"],"variants":{"outline":"ec95"}},"h-3":{"name":"h-3","category":"Text","tags":["header","text","editor","h3","heading","typography"],"variants":{"outline":"ec96"}},"h-4":{"name":"h-4","category":"Text","tags":["header","text","editor","h4","heading","typography"],"variants":{"outline":"ec97"}},"h-5":{"name":"h-5","category":"Text","tags":["header","text","editor","h5","heading","typography"],"variants":{"outline":"ec98"}},"h-6":{"name":"h-6","category":"Text","tags":["header","text","editor","h6","heading","typography"],"variants":{"outline":"ec99"}},"hammer-off":{"name":"hammer-off","category":"","tags":["tool","repair","building","construction"],"variants":{"outline":"f13c"}},"hammer":{"name":"hammer","category":"","tags":["tool","repair","building","construction"],"variants":{"outline":"ef91"}},"hand-click":{"name":"hand-click","category":"Gestures","tags":["gesture","touch","press","phone"],"variants":{"outline":"ef4f"}},"hand-finger-down":{"name":"hand-finger-down","category":"","tags":[],"variants":{"outline":"ff4f"}},"hand-finger-left":{"name":"hand-finger-left","category":"","tags":[],"variants":{"outline":"ff4e"}},"hand-finger-off":{"name":"hand-finger-off","category":"Gestures","tags":["point","show","index","forefinger","body","human","palm"],"variants":{"outline":"f13d"}},"hand-finger-right":{"name":"hand-finger-right","category":"","tags":[],"variants":{"outline":"ff4d"}},"hand-finger":{"name":"hand-finger","category":"Gestures","tags":["point","show","index","forefinger","body","human","palm"],"variants":{"outline":"ee94"}},"hand-grab":{"name":"hand-grab","category":"Gestures","tags":["hold","fist","drop","catch"],"variants":{"outline":"f091"}},"hand-little-finger":{"name":"hand-little-finger","category":"Gestures","tags":["small","body","human","palm"],"variants":{"outline":"ee95"}},"hand-love-you":{"name":"hand-love-you","category":"Gestures","tags":["heavy","metal","party","concert","rebel"],"variants":{"outline":"ee97"}},"hand-middle-finger":{"name":"hand-middle-finger","category":"Gestures","tags":["signal","gesture","curse","vulgarism","abuse"],"variants":{"outline":"ec2d"}},"hand-move":{"name":"hand-move","category":"Gestures","tags":["gesture","swipe","right","left","up","down"],"variants":{"outline":"ef50"}},"hand-off":{"name":"hand-off","category":"Gestures","tags":["disclaimer","body"],"variants":{"outline":"ed15"}},"hand-ring-finger":{"name":"hand-ring-finger","category":"Gestures","tags":["body","human","palm"],"variants":{"outline":"ee96"}},"hand-sanitizer":{"name":"hand-sanitizer","category":"Health","tags":["hygiene","gel","alcohol","wash","virus"],"variants":{"outline":"f5f4"}},"hand-stop":{"name":"hand-stop","category":"Gestures","tags":["forbiddance","nixing","ban","interdicting"],"variants":{"outline":"ec2e"}},"hand-three-fingers":{"name":"hand-three-fingers","category":"Gestures","tags":["body","human","palm"],"variants":{"outline":"ee98"}},"hand-two-fingers":{"name":"hand-two-fingers","category":"Gestures","tags":["body","human","palm","gesture"],"variants":{"outline":"ee99"}},"hanger-2":{"name":"hanger-2","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"f09c","filled":"ff61"}},"hanger-off":{"name":"hanger-off","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"f13e"}},"hanger":{"name":"hanger","category":"","tags":["clothes","wardrobe","hook","hang","wooden","plastic","wire","shop","store","clothing","fashion"],"variants":{"outline":"ee9a"}},"hash":{"name":"hash","category":"","tags":["hashtag","#","instagram"],"variants":{"outline":"eabc"}},"haze-moon":{"name":"haze-moon","category":"","tags":[],"variants":{"outline":"faf8"}},"haze":{"name":"haze","category":"Weather","tags":["climate","meterology","weather","morning"],"variants":{"outline":"efaa"}},"hdr":{"name":"hdr","category":"Photography","tags":[],"variants":{"outline":"fa7b"}},"heading-off":{"name":"heading-off","category":"Text","tags":["main","text","headline","style","styling","html"],"variants":{"outline":"f13f"}},"heading":{"name":"heading","category":"Text","tags":["main","text","headline","style","styling","html"],"variants":{"outline":"ee9b"}},"headphones-off":{"name":"headphones-off","category":"Media","tags":["music","headset","audio","sound","customer"],"variants":{"outline":"ed1d"}},"headphones":{"name":"headphones","category":"Media","tags":["music","headset","audio","sound","customer"],"variants":{"outline":"eabd","filled":"fa3c"}},"headset-off":{"name":"headset-off","category":"Media","tags":["music","headphones","audio","sound","customer"],"variants":{"outline":"f3f6"}},"headset":{"name":"headset","category":"Media","tags":["music","headphones","audio","sound","customer"],"variants":{"outline":"eb90"}},"health-recognition":{"name":"health-recognition","category":"","tags":["life","doctor","healthy"],"variants":{"outline":"f1fb"}},"heart-bitcoin":{"name":"heart-bitcoin","category":"","tags":[],"variants":{"outline":"ff3b"}},"heart-bolt":{"name":"heart-bolt","category":"","tags":[],"variants":{"outline":"fb9e"}},"heart-broken":{"name":"heart-broken","category":"Health","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"ecba"}},"heart-cancel":{"name":"heart-cancel","category":"","tags":[],"variants":{"outline":"fb9f"}},"heart-check":{"name":"heart-check","category":"","tags":[],"variants":{"outline":"fba0"}},"heart-code":{"name":"heart-code","category":"","tags":[],"variants":{"outline":"fba1"}},"heart-cog":{"name":"heart-cog","category":"","tags":[],"variants":{"outline":"fba2"}},"heart-discount":{"name":"heart-discount","category":"","tags":[],"variants":{"outline":"fba3"}},"heart-dollar":{"name":"heart-dollar","category":"","tags":[],"variants":{"outline":"fba4"}},"heart-down":{"name":"heart-down","category":"","tags":[],"variants":{"outline":"fba5"}},"heart-exclamation":{"name":"heart-exclamation","category":"","tags":[],"variants":{"outline":"fba6"}},"heart-handshake":{"name":"heart-handshake","category":"","tags":["support","care","friends","couple","relation"],"variants":{"outline":"f0f3"}},"heart-minus":{"name":"heart-minus","category":"Shapes","tags":["delete","unfavourite","remove"],"variants":{"outline":"f140"}},"heart-off":{"name":"heart-off","category":"Shapes","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"f141"}},"heart-pause":{"name":"heart-pause","category":"","tags":[],"variants":{"outline":"fba7"}},"heart-pin":{"name":"heart-pin","category":"","tags":[],"variants":{"outline":"fba8"}},"heart-plus":{"name":"heart-plus","category":"Shapes","tags":["add","love","favourite","like"],"variants":{"outline":"f142"}},"heart-question":{"name":"heart-question","category":"","tags":[],"variants":{"outline":"fba9"}},"heart-rate-monitor":{"name":"heart-rate-monitor","category":"Health","tags":["medical","pulse","health","hospital","healthcare"],"variants":{"outline":"ef61"}},"heart-search":{"name":"heart-search","category":"","tags":[],"variants":{"outline":"fbaa"}},"heart-share":{"name":"heart-share","category":"","tags":[],"variants":{"outline":"fbab"}},"heart-star":{"name":"heart-star","category":"","tags":[],"variants":{"outline":"fbac"}},"heart-up":{"name":"heart-up","category":"","tags":[],"variants":{"outline":"fbad"}},"heart-x":{"name":"heart-x","category":"","tags":[],"variants":{"outline":"fbae"}},"heart":{"name":"heart","category":"Shapes","tags":["love","emotion","like","favorite","relationship"],"variants":{"outline":"eabe","filled":"f67c"}},"heartbeat":{"name":"heartbeat","category":"Health","tags":["pulse","medical","ecg","cardiology","fitness","chart"],"variants":{"outline":"ef92"}},"hearts-off":{"name":"hearts-off","category":"Shapes","tags":["love","valentine","romantic","romance","marriage"],"variants":{"outline":"f3f7"}},"hearts":{"name":"hearts","category":"Shapes","tags":["love","valentine","romantic","romance","marriage"],"variants":{"outline":"f387"}},"helicopter-landing":{"name":"helicopter-landing","category":"Vehicles","tags":["pad","helipad","land","takeoff","navy","travel","aircraft","platform","fly"],"variants":{"outline":"ed8d"}},"helicopter":{"name":"helicopter","category":"Vehicles","tags":["land","takeoff","navy","travel","aircraft","platform","fly","pilot","journey","rotorcraft","hover"],"variants":{"outline":"ed8e"}},"helmet-off":{"name":"helmet-off","category":"Sport","tags":["safety","f1","racing","motorcycle","builder"],"variants":{"outline":"f143"}},"helmet":{"name":"helmet","category":"Sport","tags":["safety","f1","racing","motorcycle","builder"],"variants":{"outline":"efca"}},"help-circle":{"name":"help-circle","category":"System","tags":[],"variants":{"outline":"f91d","filled":"fa3d"}},"help-hexagon":{"name":"help-hexagon","category":"System","tags":["support","question","shape","faq","info"],"variants":{"outline":"f7a8","filled":"fa3e"}},"help-octagon":{"name":"help-octagon","category":"System","tags":["support","question","shape","faq","info"],"variants":{"outline":"f7a9","filled":"fa3f"}},"help-off":{"name":"help-off","category":"System","tags":["tooltip","assistance","advice","support"],"variants":{"outline":"f3f8"}},"help-small":{"name":"help-small","category":"System","tags":[],"variants":{"outline":"f91e"}},"help-square-rounded":{"name":"help-square-rounded","category":"System","tags":[],"variants":{"outline":"f91f","filled":"fa41"}},"help-square":{"name":"help-square","category":"System","tags":[],"variants":{"outline":"f920","filled":"fa40"}},"help-triangle":{"name":"help-triangle","category":"System","tags":[],"variants":{"outline":"f921","filled":"fa42"}},"help":{"name":"help","category":"System","tags":["tooltip","assistance","advice","support"],"variants":{"outline":"eabf"}},"hemisphere-off":{"name":"hemisphere-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa0"}},"hemisphere-plus":{"name":"hemisphere-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa1"}},"hemisphere":{"name":"hemisphere","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa2"}},"hexagon-3d":{"name":"hexagon-3d","category":"","tags":["geometry","six","dimensional","shape"],"variants":{"outline":"f4c7"}},"hexagon-letter-a":{"name":"hexagon-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f463","filled":"fe47"}},"hexagon-letter-b":{"name":"hexagon-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f464","filled":"fe46"}},"hexagon-letter-c":{"name":"hexagon-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f465","filled":"fe45"}},"hexagon-letter-d":{"name":"hexagon-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f466","filled":"fe44"}},"hexagon-letter-e":{"name":"hexagon-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f467","filled":"fe43"}},"hexagon-letter-f":{"name":"hexagon-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f468","filled":"fe42"}},"hexagon-letter-g":{"name":"hexagon-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f469","filled":"fe41"}},"hexagon-letter-h":{"name":"hexagon-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46a","filled":"fe40"}},"hexagon-letter-i":{"name":"hexagon-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46b","filled":"fe3f"}},"hexagon-letter-j":{"name":"hexagon-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46c","filled":"fe3e"}},"hexagon-letter-k":{"name":"hexagon-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46d","filled":"fe3d"}},"hexagon-letter-l":{"name":"hexagon-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46e","filled":"fe3c"}},"hexagon-letter-m":{"name":"hexagon-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f46f","filled":"fe3b"}},"hexagon-letter-n":{"name":"hexagon-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f470","filled":"fe3a"}},"hexagon-letter-o":{"name":"hexagon-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f471","filled":"fe39"}},"hexagon-letter-p":{"name":"hexagon-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f472","filled":"fe38"}},"hexagon-letter-q":{"name":"hexagon-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f473","filled":"fe37"}},"hexagon-letter-r":{"name":"hexagon-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f474","filled":"fe36"}},"hexagon-letter-s":{"name":"hexagon-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f475","filled":"fe35"}},"hexagon-letter-t":{"name":"hexagon-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f476","filled":"fe34"}},"hexagon-letter-u":{"name":"hexagon-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f477","filled":"fe33"}},"hexagon-letter-v":{"name":"hexagon-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4b3","filled":"fe32"}},"hexagon-letter-w":{"name":"hexagon-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f478","filled":"fe31"}},"hexagon-letter-x":{"name":"hexagon-letter-x","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f479","filled":"fe30"}},"hexagon-letter-y":{"name":"hexagon-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47a","filled":"fe2f"}},"hexagon-letter-z":{"name":"hexagon-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47b","filled":"fe2e"}},"hexagon-minus-2":{"name":"hexagon-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc8e"}},"hexagon-minus":{"name":"hexagon-minus","category":"Shapes","tags":[],"variants":{"outline":"fc8f","filled":"fe2d"}},"hexagon-number-0":{"name":"hexagon-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f459","filled":"f74c"}},"hexagon-number-1":{"name":"hexagon-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45a","filled":"f74d"}},"hexagon-number-2":{"name":"hexagon-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45b","filled":"f74e"}},"hexagon-number-3":{"name":"hexagon-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45c","filled":"f74f"}},"hexagon-number-4":{"name":"hexagon-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45d","filled":"f750"}},"hexagon-number-5":{"name":"hexagon-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45e","filled":"f751"}},"hexagon-number-6":{"name":"hexagon-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f45f","filled":"f752"}},"hexagon-number-7":{"name":"hexagon-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f460","filled":"f753"}},"hexagon-number-8":{"name":"hexagon-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f461","filled":"f754"}},"hexagon-number-9":{"name":"hexagon-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f462","filled":"f755"}},"hexagon-off":{"name":"hexagon-off","category":"Shapes","tags":["shape","geometric","math","2d"],"variants":{"outline":"ee9c"}},"hexagon-plus-2":{"name":"hexagon-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc90"}},"hexagon-plus":{"name":"hexagon-plus","category":"","tags":[],"variants":{"outline":"fc45","filled":"fe2c"}},"hexagon":{"name":"hexagon","category":"Shapes","tags":["shape","geometric","math","2d"],"variants":{"outline":"ec02","filled":"f67d"}},"hexagonal-prism-off":{"name":"hexagonal-prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa3"}},"hexagonal-prism-plus":{"name":"hexagonal-prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa4"}},"hexagonal-prism":{"name":"hexagonal-prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa5"}},"hexagonal-pyramid-off":{"name":"hexagonal-pyramid-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa6"}},"hexagonal-pyramid-plus":{"name":"hexagonal-pyramid-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa7"}},"hexagonal-pyramid":{"name":"hexagonal-pyramid","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa8"}},"hexagons-off":{"name":"hexagons-off","category":"Shapes","tags":["diagram","chemistry","modules","geometric"],"variants":{"outline":"f3f9"}},"hexagons":{"name":"hexagons","category":"Shapes","tags":["diagram","chemistry","modules","geometric"],"variants":{"outline":"f09d"}},"hierarchy-2":{"name":"hierarchy-2","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"ee9d"}},"hierarchy-3":{"name":"hierarchy-3","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"f289"}},"hierarchy-off":{"name":"hierarchy-off","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"f3fa"}},"hierarchy":{"name":"hierarchy","category":"Design","tags":["relation","above","below","status","society","important"],"variants":{"outline":"ee9e"}},"highlight-off":{"name":"highlight-off","category":"Text","tags":["marker","important","highlighter","pen"],"variants":{"outline":"f144"}},"highlight":{"name":"highlight","category":"Text","tags":["marker","important","highlighter","pen"],"variants":{"outline":"ef3f"}},"history-off":{"name":"history-off","category":"System","tags":["search","see","past","card","website"],"variants":{"outline":"f3fb"}},"history-toggle":{"name":"history-toggle","category":"","tags":["on","off","control","interface"],"variants":{"outline":"f1fc"}},"history":{"name":"history","category":"System","tags":["search","see","past","card","website"],"variants":{"outline":"ebea"}},"home-2":{"name":"home-2","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"eac0"}},"home-bitcoin":{"name":"home-bitcoin","category":"","tags":[],"variants":{"outline":"ff3a"}},"home-bolt":{"name":"home-bolt","category":"Buildings","tags":["electrity","energy","power","lightning","energetic","house"],"variants":{"outline":"f336"}},"home-cancel":{"name":"home-cancel","category":"Buildings","tags":["delete","house","building","close"],"variants":{"outline":"f350"}},"home-check":{"name":"home-check","category":"Buildings","tags":["house","tick","mark","assure","safety"],"variants":{"outline":"f337"}},"home-cog":{"name":"home-cog","category":"Buildings","tags":["gear","house","building","settings","renovation"],"variants":{"outline":"f338"}},"home-dollar":{"name":"home-dollar","category":"Buildings","tags":["buisness","house","estate","finance","building","money"],"variants":{"outline":"f339"}},"home-dot":{"name":"home-dot","category":"Buildings","tags":["notification","alert","monitor"],"variants":{"outline":"f33a"}},"home-down":{"name":"home-down","category":"Buildings","tags":["property","estate","bottom","south","house"],"variants":{"outline":"f33b"}},"home-eco":{"name":"home-eco","category":"Buildings","tags":["ecology","energy","nature","leaf","house"],"variants":{"outline":"f351"}},"home-edit":{"name":"home-edit","category":"Buildings","tags":["house","building","renovation","estate"],"variants":{"outline":"f352"}},"home-exclamation":{"name":"home-exclamation","category":"Buildings","tags":["warning","danger","accident","house"],"variants":{"outline":"f33c"}},"home-hand":{"name":"home-hand","category":"Buildings","tags":["house","dashboard","living","building","care"],"variants":{"outline":"f504"}},"home-heart":{"name":"home-heart","category":"Buildings","tags":["love","sweet","dating","care","safety"],"variants":{"outline":"f353"}},"home-infinity":{"name":"home-infinity","category":"Buildings","tags":["house","dashboard","living","building","endless"],"variants":{"outline":"f505"}},"home-link":{"name":"home-link","category":"Buildings","tags":["address","technology","smart","internet"],"variants":{"outline":"f354"}},"home-minus":{"name":"home-minus","category":"Buildings","tags":["remove","delete","cancel","close"],"variants":{"outline":"f33d"}},"home-move":{"name":"home-move","category":"Buildings","tags":["relocation","moving","house","change","exchange"],"variants":{"outline":"f33e"}},"home-off":{"name":"home-off","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"f145"}},"home-plus":{"name":"home-plus","category":"Buildings","tags":["add","building","new","create"],"variants":{"outline":"f33f"}},"home-question":{"name":"home-question","category":"Buildings","tags":["support","help","information","ask","anwser","?"],"variants":{"outline":"f340"}},"home-ribbon":{"name":"home-ribbon","category":"Buildings","tags":["contract","certifited","achievement"],"variants":{"outline":"f355"}},"home-search":{"name":"home-search","category":"Buildings","tags":["find","estate","house","building"],"variants":{"outline":"f341"}},"home-share":{"name":"home-share","category":"Buildings","tags":["house","dashboard","living","building","network","link","connection"],"variants":{"outline":"f342"}},"home-shield":{"name":"home-shield","category":"Buildings","tags":["security","safety","secure","safe"],"variants":{"outline":"f343"}},"home-signal":{"name":"home-signal","category":"Buildings","tags":["wi-fi","communication","internet","wireless"],"variants":{"outline":"f356"}},"home-star":{"name":"home-star","category":"Buildings","tags":["best","favourite","like","house"],"variants":{"outline":"f344"}},"home-stats":{"name":"home-stats","category":"Buildings","tags":["analytics","business","finance"],"variants":{"outline":"f345"}},"home-up":{"name":"home-up","category":"Buildings","tags":["arrow","higher","house","north"],"variants":{"outline":"f346"}},"home-x":{"name":"home-x","category":"Buildings","tags":["off","sale","commerce"],"variants":{"outline":"f347"}},"home":{"name":"home","category":"Buildings","tags":["house","dashboard","living","building"],"variants":{"outline":"eac1","filled":"fe2b"}},"horse-toy":{"name":"horse-toy","category":"","tags":["baby","child","kid","rocking","fun"],"variants":{"outline":"f28a"}},"horse":{"name":"horse","category":"","tags":["equine","equestrian","stallion","mare","pony","steed","riding","hoofed-animal","horseback","thoroughbred"],"variants":{"outline":"fc46"}},"horseshoe":{"name":"horseshoe","category":"","tags":[],"variants":{"outline":"fcb7"}},"hospital-circle":{"name":"hospital-circle","category":"","tags":["medical-center","healthcare","clinic","emergency","hospital-round","health","care","medical-facility","circle-hospital","health-center"],"variants":{"outline":"fd58","filled":"fed2"}},"hospital":{"name":"hospital","category":"","tags":["medical-facility","healthcare","clinic","emergency","hospital-building","health","care","medical-center","hospital-structure","health-center"],"variants":{"outline":"fd59"}},"hotel-service":{"name":"hotel-service","category":"","tags":["food","reception","accommodation","room","bell"],"variants":{"outline":"ef80"}},"hourglass-empty":{"name":"hourglass-empty","category":"System","tags":["material","measure","time","timer","clock","sand"],"variants":{"outline":"f146"}},"hourglass-high":{"name":"hourglass-high","category":"System","tags":["simple","time","timer","clock","sand"],"variants":{"outline":"f092"}},"hourglass-low":{"name":"hourglass-low","category":"System","tags":["simple","time","timer","clock","sand"],"variants":{"outline":"f093"}},"hourglass-off":{"name":"hourglass-off","category":"System","tags":["time","timer","sand","clock"],"variants":{"outline":"f147"}},"hourglass":{"name":"hourglass","category":"System","tags":["time","timer","sand","clock"],"variants":{"outline":"ef93","filled":"f756"}},"hours-12":{"name":"hours-12","category":"System","tags":[],"variants":{"outline":"fc53"}},"hours-24":{"name":"hours-24","category":"System","tags":["clock","time","day","support","service"],"variants":{"outline":"f5e7"}},"html":{"name":"html","category":"Extensions","tags":["code","coding","file","web","programming","page"],"variants":{"outline":"f7b1"}},"http-connect":{"name":"http-connect","category":"Computers","tags":[],"variants":{"outline":"fa28"}},"http-delete":{"name":"http-delete","category":"Computers","tags":[],"variants":{"outline":"fa29"}},"http-get":{"name":"http-get","category":"Computers","tags":[],"variants":{"outline":"fa2a"}},"http-head":{"name":"http-head","category":"Computers","tags":[],"variants":{"outline":"fa2b"}},"http-options":{"name":"http-options","category":"Computers","tags":[],"variants":{"outline":"fa2c"}},"http-patch":{"name":"http-patch","category":"Computers","tags":[],"variants":{"outline":"fa2d"}},"http-post":{"name":"http-post","category":"Computers","tags":[],"variants":{"outline":"fa2e"}},"http-put":{"name":"http-put","category":"Computers","tags":[],"variants":{"outline":"fa2f"}},"http-que":{"name":"http-que","category":"Computers","tags":[],"variants":{"outline":"fa5b"}},"http-trace":{"name":"http-trace","category":"Computers","tags":[],"variants":{"outline":"fa30"}},"ice-cream-2":{"name":"ice-cream-2","category":"Food","tags":["sweet","cold","dessert","food","taste","frozen","snack","flavour","flavor","cone"],"variants":{"outline":"ee9f"}},"ice-cream-off":{"name":"ice-cream-off","category":"Food","tags":["candy","dessert","frozen","sweet"],"variants":{"outline":"f148"}},"ice-cream":{"name":"ice-cream","category":"Food","tags":["candy","dessert","frozen","sweet"],"variants":{"outline":"eac2"}},"ice-skating":{"name":"ice-skating","category":"Sport","tags":["winter","skate","sport","figure","activity","hockey"],"variants":{"outline":"efcb"}},"icons-off":{"name":"icons-off","category":"Shapes","tags":["design","image","picture"],"variants":{"outline":"f3fc"}},"icons":{"name":"icons","category":"Shapes","tags":["design","image","picture"],"variants":{"outline":"f1d4"}},"id-badge-2":{"name":"id-badge-2","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"f076"}},"id-badge-off":{"name":"id-badge-off","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"f3fd"}},"id-badge":{"name":"id-badge","category":"System","tags":["identification","pass","card","identity"],"variants":{"outline":"eff7"}},"id-off":{"name":"id-off","category":"System","tags":["identification","card","personal details"],"variants":{"outline":"f149"}},"id":{"name":"id","category":"System","tags":["identification","card","personal details"],"variants":{"outline":"eac3"}},"ikosaedr":{"name":"ikosaedr","category":"","tags":[],"variants":{"outline":"fec6"}},"image-in-picture":{"name":"image-in-picture","category":"","tags":[],"variants":{"outline":"fd9f"}},"inbox-off":{"name":"inbox-off","category":"","tags":["mail","gmail","email","envelope","post"],"variants":{"outline":"f14a"}},"inbox":{"name":"inbox","category":"","tags":["mail","gmail","email","envelope","post"],"variants":{"outline":"eac4"}},"indent-decrease":{"name":"indent-decrease","category":"Text","tags":["line","position","block","margin","paragraph"],"variants":{"outline":"eb91"}},"indent-increase":{"name":"indent-increase","category":"Text","tags":["line","position","block","margin","paragraph"],"variants":{"outline":"eb92"}},"infinity-off":{"name":"infinity-off","category":"Math","tags":["endless","eternity","continuum","time"],"variants":{"outline":"f3fe"}},"infinity":{"name":"infinity","category":"Math","tags":["endless","eternity","continuum","time"],"variants":{"outline":"eb69"}},"info-circle":{"name":"info-circle","category":"System","tags":["information","advice","news","tip","sign"],"variants":{"outline":"eac5","filled":"f6d8"}},"info-hexagon":{"name":"info-hexagon","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f7aa","filled":"fa43"}},"info-octagon":{"name":"info-octagon","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f7ab","filled":"fa44"}},"info-small":{"name":"info-small","category":"System","tags":[],"variants":{"outline":"f922"}},"info-square-rounded":{"name":"info-square-rounded","category":"System","tags":["help","support","shape","information","question"],"variants":{"outline":"f635","filled":"f6d9"}},"info-square":{"name":"info-square","category":"System","tags":["information","advice","news","tip","sign"],"variants":{"outline":"eac6","filled":"fa45"}},"info-triangle":{"name":"info-triangle","category":"System","tags":[],"variants":{"outline":"f923","filled":"fa46"}},"inner-shadow-bottom-left":{"name":"inner-shadow-bottom-left","category":"Design","tags":["shape","circle","down","south","west"],"variants":{"outline":"f51e","filled":"f758"}},"inner-shadow-bottom-right":{"name":"inner-shadow-bottom-right","category":"Design","tags":["shape","circle","down","south","east"],"variants":{"outline":"f51f","filled":"f759"}},"inner-shadow-bottom":{"name":"inner-shadow-bottom","category":"Design","tags":["shape","circle","down","south"],"variants":{"outline":"f520","filled":"f757"}},"inner-shadow-left":{"name":"inner-shadow-left","category":"Design","tags":["shape","circle","west"],"variants":{"outline":"f521","filled":"f75a"}},"inner-shadow-right":{"name":"inner-shadow-right","category":"Design","tags":["shape","circle","east"],"variants":{"outline":"f522","filled":"f75b"}},"inner-shadow-top-left":{"name":"inner-shadow-top-left","category":"Design","tags":["shape","circle","up","north","west"],"variants":{"outline":"f523","filled":"f75d"}},"inner-shadow-top-right":{"name":"inner-shadow-top-right","category":"Design","tags":["shape","circle","up","north","east"],"variants":{"outline":"f524","filled":"f75e"}},"inner-shadow-top":{"name":"inner-shadow-top","category":"Design","tags":["shape","circle","up","north"],"variants":{"outline":"f525","filled":"f75c"}},"input-ai":{"name":"input-ai","category":"","tags":[],"variants":{"outline":"fc5a"}},"input-check":{"name":"input-check","category":"","tags":[],"variants":{"outline":"fc5b"}},"input-search":{"name":"input-search","category":"Text","tags":["find","website","field","explore"],"variants":{"outline":"f2a2"}},"input-x":{"name":"input-x","category":"","tags":[],"variants":{"outline":"fc5c"}},"invoice":{"name":"invoice","category":"Document","tags":[],"variants":{"outline":"feab"}},"ironing-1":{"name":"ironing-1","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f4"}},"ironing-2":{"name":"ironing-2","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f5"}},"ironing-3":{"name":"ironing-3","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f6"}},"ironing-off":{"name":"ironing-off","category":"Laundry","tags":["clotches","housework","iron","smooth"],"variants":{"outline":"f2f7"}},"ironing-steam-off":{"name":"ironing-steam-off","category":"Laundry","tags":["clotches","housework","iron","smooth","water"],"variants":{"outline":"f2f8"}},"ironing-steam":{"name":"ironing-steam","category":"Laundry","tags":["clotches","housework","iron","smooth","water"],"variants":{"outline":"f2f9"}},"ironing":{"name":"ironing","category":"Laundry","tags":[],"variants":{"outline":"fa7c","filled":"fe2a"}},"irregular-polyhedron-off":{"name":"irregular-polyhedron-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faa9"}},"irregular-polyhedron-plus":{"name":"irregular-polyhedron-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faaa"}},"irregular-polyhedron":{"name":"irregular-polyhedron","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faab"}},"italic":{"name":"italic","category":"Text","tags":["typography","font","typeface","emphasise"],"variants":{"outline":"eb93"}},"jacket":{"name":"jacket","category":"","tags":["clotches","winter","life","coat"],"variants":{"outline":"f661"}},"jetpack":{"name":"jetpack","category":"","tags":["fly","rocket","transport","space","future"],"variants":{"outline":"f581","filled":"fe29"}},"jewish-star":{"name":"jewish-star","category":"Shapes","tags":["judaism","israel","religion","bright"],"variants":{"outline":"f3ff","filled":"f67e"}},"join-bevel":{"name":"join-bevel","category":"","tags":[],"variants":{"outline":"ff4c"}},"join-round":{"name":"join-round","category":"","tags":[],"variants":{"outline":"ff4b"}},"join-straight":{"name":"join-straight","category":"","tags":[],"variants":{"outline":"ff4a"}},"jpg":{"name":"jpg","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3ac"}},"json":{"name":"json","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7b2"}},"jump-rope":{"name":"jump-rope","category":"Sport","tags":["sport","fitness","workout","gym","skipping","cardio","fit","shape"],"variants":{"outline":"ed8f"}},"karate":{"name":"karate","category":"Sport","tags":["martial","art","self","defence","defend","strike","compat","oriental","fight","kick"],"variants":{"outline":"ed32"}},"kayak":{"name":"kayak","category":"Sport","tags":["water","adventure","river","camp","sport","summer","activity"],"variants":{"outline":"f1d6"}},"kerning":{"name":"kerning","category":"Text","tags":["text","editor","font","calligraphy"],"variants":{"outline":"efb8"}},"key-off":{"name":"key-off","category":"","tags":["password","login","authentication","secure"],"variants":{"outline":"f14b"}},"key":{"name":"key","category":"","tags":["password","login","authentication","secure"],"variants":{"outline":"eac7","filled":"fe28"}},"keyboard-hide":{"name":"keyboard-hide","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ec7e"}},"keyboard-off":{"name":"keyboard-off","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"eea0"}},"keyboard-show":{"name":"keyboard-show","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ec7f"}},"keyboard":{"name":"keyboard","category":"Devices","tags":["computer","laptop","device","type"],"variants":{"outline":"ebd6"}},"keyframe-align-center":{"name":"keyframe-align-center","category":"Media","tags":["middle","animation","shape"],"variants":{"outline":"f582","filled":"fc30"}},"keyframe-align-horizontal":{"name":"keyframe-align-horizontal","category":"Media","tags":["animation","shape"],"variants":{"outline":"f583","filled":"fc31"}},"keyframe-align-vertical":{"name":"keyframe-align-vertical","category":"Media","tags":["animation","shape"],"variants":{"outline":"f584","filled":"fc32"}},"keyframe":{"name":"keyframe","category":"Media","tags":["animation","shape","design","align"],"variants":{"outline":"f576","filled":"fc33"}},"keyframes":{"name":"keyframes","category":"Media","tags":["animation","shape","design","align"],"variants":{"outline":"f585","filled":"fc34"}},"label-important":{"name":"label-important","category":"","tags":[],"variants":{"outline":"ff49","filled":"ff60"}},"label-off":{"name":"label-off","category":"","tags":[],"variants":{"outline":"ff39"}},"label":{"name":"label","category":"","tags":[],"variants":{"outline":"ff38","filled":"ff41"}},"ladder-off":{"name":"ladder-off","category":"","tags":["up","equipment","garden","climb","climbing"],"variants":{"outline":"f14c"}},"ladder":{"name":"ladder","category":"","tags":["up","equipment","garden","climb","climbing"],"variants":{"outline":"efe2"}},"ladle":{"name":"ladle","category":"","tags":[],"variants":{"outline":"fc14"}},"lambda":{"name":"lambda","category":"Letters","tags":["letter","alphabet","greek","math"],"variants":{"outline":"f541"}},"lamp-2":{"name":"lamp-2","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"f09e"}},"lamp-off":{"name":"lamp-off","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"f14d"}},"lamp":{"name":"lamp","category":"","tags":["light","room","decoration","electic","energy"],"variants":{"outline":"efab"}},"lane":{"name":"lane","category":"","tags":[],"variants":{"outline":"faf9"}},"language-hiragana":{"name":"language-hiragana","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ef77"}},"language-katakana":{"name":"language-katakana","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ef78"}},"language-off":{"name":"language-off","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"f14e"}},"language":{"name":"language","category":"Text","tags":["tongue","country","speech","speak","translate","communication","communicate","english","dialect","dictionary","word"],"variants":{"outline":"ebbe"}},"lasso-off":{"name":"lasso-off","category":"Design","tags":["cowboy","western","sheriff","man","tool","west"],"variants":{"outline":"f14f"}},"lasso-polygon":{"name":"lasso-polygon","category":"Design","tags":["geometry","adobe","tool","shape"],"variants":{"outline":"f388","filled":"ff5f"}},"lasso":{"name":"lasso","category":"Design","tags":["cowboy","western","sheriff","man","tool","west"],"variants":{"outline":"efac"}},"laurel-wreath-1":{"name":"laurel-wreath-1","category":"","tags":[],"variants":{"outline":"ff48"}},"laurel-wreath-2":{"name":"laurel-wreath-2","category":"","tags":[],"variants":{"outline":"ff47"}},"laurel-wreath-3":{"name":"laurel-wreath-3","category":"","tags":[],"variants":{"outline":"ff46"}},"laurel-wreath":{"name":"laurel-wreath","category":"","tags":[],"variants":{"outline":"ff45"}},"layers-difference":{"name":"layers-difference","category":"Design","tags":["layered-difference","layer-intersect","intersecting-layers","layer-subtract","difference","overlap","comparison","layer-blend","merge-layers","layer-comparison","stack"],"variants":{"outline":"eac8"}},"layers-intersect-2":{"name":"layers-intersect-2","category":"Design","tags":["merge","stack","graphic"],"variants":{"outline":"eff8"}},"layers-intersect":{"name":"layers-intersect","category":"Design","tags":["layered-intersection","layer-difference","intersecting","layer-overlap","intersection","intersecting-layers","layer-interaction","layer-cross","layers-crossing","layer-junction","stack"],"variants":{"outline":"eac9"}},"layers-linked":{"name":"layers-linked","category":"Design","tags":["data","network"],"variants":{"outline":"eea1"}},"layers-off":{"name":"layers-off","category":"Design","tags":["stack","document","file","pages","graphic"],"variants":{"outline":"f150"}},"layers-selected-bottom":{"name":"layers-selected-bottom","category":"Design","tags":[],"variants":{"outline":"feaa"}},"layers-selected":{"name":"layers-selected","category":"Design","tags":[],"variants":{"outline":"fea9"}},"layers-subtract":{"name":"layers-subtract","category":"Design","tags":["layered-subtraction","layer-removal","remove-layer","subtract-layers","subtracting","layer-reduction","layer-elimination","layer-reduce","layer-removing","remove","stack"],"variants":{"outline":"eaca"}},"layers-union":{"name":"layers-union","category":"Design","tags":["stack","join"],"variants":{"outline":"eacb"}},"layout-2":{"name":"layout-2","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eacc","filled":"fe27"}},"layout-align-bottom":{"name":"layout-align-bottom","category":"Design","tags":["position","element","design"],"variants":{"outline":"eacd","filled":"fe26"}},"layout-align-center":{"name":"layout-align-center","category":"Design","tags":["position","element","design"],"variants":{"outline":"eace","filled":"fe25"}},"layout-align-left":{"name":"layout-align-left","category":"Design","tags":["position","element","design"],"variants":{"outline":"eacf","filled":"fe24"}},"layout-align-middle":{"name":"layout-align-middle","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead0","filled":"fe23"}},"layout-align-right":{"name":"layout-align-right","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead1","filled":"fe22"}},"layout-align-top":{"name":"layout-align-top","category":"Design","tags":["position","element","design"],"variants":{"outline":"ead2","filled":"fe21"}},"layout-board-split":{"name":"layout-board-split","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"ef94"}},"layout-board":{"name":"layout-board","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"ef95"}},"layout-bottombar-collapse":{"name":"layout-bottombar-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28b","filled":"fc35"}},"layout-bottombar-expand":{"name":"layout-bottombar-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28c","filled":"fc36"}},"layout-bottombar-inactive":{"name":"layout-bottombar-inactive","category":"","tags":[],"variants":{"outline":"fd45"}},"layout-bottombar":{"name":"layout-bottombar","category":"Design","tags":["position","element","design","grid","footer"],"variants":{"outline":"ead3","filled":"fc37"}},"layout-cards":{"name":"layout-cards","category":"Design","tags":["position","element","design","arrangement"],"variants":{"outline":"ec13","filled":"fe20"}},"layout-collage":{"name":"layout-collage","category":"Design","tags":["grid","dashboard","image","interface","editing"],"variants":{"outline":"f389"}},"layout-columns":{"name":"layout-columns","category":"Design","tags":["grid","column","rows"],"variants":{"outline":"ead4"}},"layout-dashboard":{"name":"layout-dashboard","category":"Design","tags":["grid","view","display","page","masonry"],"variants":{"outline":"f02c","filled":"fe1f"}},"layout-distribute-horizontal":{"name":"layout-distribute-horizontal","category":"Design","tags":["position","element","design","around"],"variants":{"outline":"ead5","filled":"fe1e"}},"layout-distribute-vertical":{"name":"layout-distribute-vertical","category":"Design","tags":["position","element","design","around"],"variants":{"outline":"ead6","filled":"fe1d"}},"layout-grid-add":{"name":"layout-grid-add","category":"Design","tags":["layout","table","network","pattern"],"variants":{"outline":"edb9"}},"layout-grid-remove":{"name":"layout-grid-remove","category":"Design","tags":[],"variants":{"outline":"fa7d"}},"layout-grid":{"name":"layout-grid","category":"Design","tags":["layout","table","network","pattern"],"variants":{"outline":"edba","filled":"fe1c"}},"layout-kanban":{"name":"layout-kanban","category":"Design","tags":["position","element","design","board","processing","task"],"variants":{"outline":"ec3f","filled":"fe1b"}},"layout-list":{"name":"layout-list","category":"Design","tags":["position","design","element","doable"],"variants":{"outline":"ec14","filled":"fe1a"}},"layout-navbar-collapse":{"name":"layout-navbar-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28d","filled":"fc38"}},"layout-navbar-expand":{"name":"layout-navbar-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f28e","filled":"fc39"}},"layout-navbar-inactive":{"name":"layout-navbar-inactive","category":"","tags":[],"variants":{"outline":"fd46"}},"layout-navbar":{"name":"layout-navbar","category":"Design","tags":["grid","row","header"],"variants":{"outline":"ead7","filled":"fc3a"}},"layout-off":{"name":"layout-off","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"f151"}},"layout-rows":{"name":"layout-rows","category":"Design","tags":["grid","masonry","collage"],"variants":{"outline":"ead8"}},"layout-sidebar-inactive":{"name":"layout-sidebar-inactive","category":"","tags":[],"variants":{"outline":"fd47"}},"layout-sidebar-left-collapse":{"name":"layout-sidebar-left-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f004","filled":"fc3b"}},"layout-sidebar-left-expand":{"name":"layout-sidebar-left-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f005","filled":"fc3c"}},"layout-sidebar-right-collapse":{"name":"layout-sidebar-right-collapse","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f006","filled":"fc3d"}},"layout-sidebar-right-expand":{"name":"layout-sidebar-right-expand","category":"Design","tags":["grid","aside","column","columns","menu","navigation"],"variants":{"outline":"f007","filled":"fc3e"}},"layout-sidebar-right-inactive":{"name":"layout-sidebar-right-inactive","category":"","tags":[],"variants":{"outline":"fd48"}},"layout-sidebar-right":{"name":"layout-sidebar-right","category":"Design","tags":["grid","aside","column","columns"],"variants":{"outline":"ead9","filled":"fe19"}},"layout-sidebar":{"name":"layout-sidebar","category":"Design","tags":["grid","aside","column","columns"],"variants":{"outline":"eada","filled":"fe18"}},"layout":{"name":"layout","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eadb","filled":"fe17"}},"leaf-2":{"name":"leaf-2","category":"","tags":[],"variants":{"outline":"ff44"}},"leaf-off":{"name":"leaf-off","category":"Nature","tags":["nature","plant","tree","autumn","fall","greenery","flower","forest","garden"],"variants":{"outline":"f400"}},"leaf":{"name":"leaf","category":"Nature","tags":["nature","plant","tree","autumn","fall","greenery","flower","forest","garden"],"variants":{"outline":"ed4f"}},"lego-off":{"name":"lego-off","category":"","tags":["toy","boy","face","play"],"variants":{"outline":"f401"}},"lego":{"name":"lego","category":"","tags":["toy","boy","face","play"],"variants":{"outline":"eadc","filled":"fe16"}},"lemon-2":{"name":"lemon-2","category":"Food","tags":["fruit","citrus","lime","food","vitamin"],"variants":{"outline":"ef81"}},"lemon":{"name":"lemon","category":"Food","tags":["fruit","citrus","lime","food","vitamin","slice"],"variants":{"outline":"ef10"}},"letter-a-small":{"name":"letter-a-small","category":"Letters","tags":["a","alpha","alphabet","first","letter","initial","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc7"}},"letter-a":{"name":"letter-a","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec50"}},"letter-b-small":{"name":"letter-b-small","category":"Letters","tags":["b","beta","second","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc8"}},"letter-b":{"name":"letter-b","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec51"}},"letter-c-small":{"name":"letter-c-small","category":"Letters","tags":["c","charlie","third","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcc9"}},"letter-c":{"name":"letter-c","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec52"}},"letter-case-lower":{"name":"letter-case-lower","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea2"}},"letter-case-toggle":{"name":"letter-case-toggle","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea3"}},"letter-case-upper":{"name":"letter-case-upper","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea4"}},"letter-case":{"name":"letter-case","category":"Text","tags":["typography","font","text","style","content"],"variants":{"outline":"eea5"}},"letter-d-small":{"name":"letter-d-small","category":"Letters","tags":["d","delta","fourth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcca"}},"letter-d":{"name":"letter-d","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec53"}},"letter-e-small":{"name":"letter-e-small","category":"Letters","tags":["e","echo","fifth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccb"}},"letter-e":{"name":"letter-e","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec54"}},"letter-f-small":{"name":"letter-f-small","category":"Letters","tags":["f","foxtrot","sixth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccc"}},"letter-f":{"name":"letter-f","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec55"}},"letter-g-small":{"name":"letter-g-small","category":"Letters","tags":["g","golf","seventh","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccd"}},"letter-g":{"name":"letter-g","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec56"}},"letter-h-small":{"name":"letter-h-small","category":"Letters","tags":["h","hotel","eighth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcce"}},"letter-h":{"name":"letter-h","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec57"}},"letter-i-small":{"name":"letter-i-small","category":"Letters","tags":["i","india","ninth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fccf"}},"letter-i":{"name":"letter-i","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec58"}},"letter-j-small":{"name":"letter-j-small","category":"Letters","tags":["j","juliett","tenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd0"}},"letter-j":{"name":"letter-j","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec59"}},"letter-k-small":{"name":"letter-k-small","category":"Letters","tags":["k","kilo","eleventh","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd1"}},"letter-k":{"name":"letter-k","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5a"}},"letter-l-small":{"name":"letter-l-small","category":"Letters","tags":["l","lima","twelfth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd2"}},"letter-l":{"name":"letter-l","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5b"}},"letter-m-small":{"name":"letter-m-small","category":"Letters","tags":["m","mike","thirteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd3"}},"letter-m":{"name":"letter-m","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5c"}},"letter-n-small":{"name":"letter-n-small","category":"Letters","tags":["n","november","fourteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd4"}},"letter-n":{"name":"letter-n","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5d"}},"letter-o-small":{"name":"letter-o-small","category":"Letters","tags":["o","oscar","fifteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd5"}},"letter-o":{"name":"letter-o","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5e"}},"letter-p-small":{"name":"letter-p-small","category":"Letters","tags":["p","papa","sixteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd6"}},"letter-p":{"name":"letter-p","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec5f"}},"letter-q-small":{"name":"letter-q-small","category":"Letters","tags":["q","quebec","seventeenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd7"}},"letter-q":{"name":"letter-q","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec60"}},"letter-r-small":{"name":"letter-r-small","category":"Letters","tags":["r","romeo","eighteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd8"}},"letter-r":{"name":"letter-r","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec61"}},"letter-s-small":{"name":"letter-s-small","category":"Letters","tags":["s","sierra","nineteenth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcd9"}},"letter-s":{"name":"letter-s","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec62"}},"letter-spacing":{"name":"letter-spacing","category":"Text","tags":["typography","font","space","character","word"],"variants":{"outline":"eea6"}},"letter-t-small":{"name":"letter-t-small","category":"Letters","tags":["t","tango","twentieth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcda"}},"letter-t":{"name":"letter-t","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec63"}},"letter-u-small":{"name":"letter-u-small","category":"Letters","tags":["u","uniform","twenty-first","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdb"}},"letter-u":{"name":"letter-u","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec64"}},"letter-v-small":{"name":"letter-v-small","category":"Letters","tags":["v","victor","twenty-second","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdc"}},"letter-v":{"name":"letter-v","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec65"}},"letter-w-small":{"name":"letter-w-small","category":"Letters","tags":["w","whiskey","twenty-third","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdd"}},"letter-w":{"name":"letter-w","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec66"}},"letter-x-small":{"name":"letter-x-small","category":"Letters","tags":["x","x-ray","twenty-fourth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcde"}},"letter-x":{"name":"letter-x","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec67"}},"letter-y-small":{"name":"letter-y-small","category":"Letters","tags":["y","yankee","twenty-fifth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fcdf"}},"letter-y":{"name":"letter-y","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec68"}},"letter-z-small":{"name":"letter-z-small","category":"Letters","tags":["z","zulu","twenty-sixth","letter","alphabet","character","typeface","glyph","script","symbol"],"variants":{"outline":"fce0"}},"letter-z":{"name":"letter-z","category":"Letters","tags":["alphabet","symbol","text","code"],"variants":{"outline":"ec69"}},"library-minus":{"name":"library-minus","category":"","tags":[],"variants":{"outline":"fd49"}},"library-photo":{"name":"library-photo","category":"","tags":[],"variants":{"outline":"fd4a"}},"library-plus":{"name":"library-plus","category":"","tags":[],"variants":{"outline":"fd4b"}},"library":{"name":"library","category":"","tags":[],"variants":{"outline":"fd4c"}},"license-off":{"name":"license-off","category":"","tags":["authorisation","permission","consent","permit","document","agree"],"variants":{"outline":"f153"}},"license":{"name":"license","category":"","tags":["authorisation","permission","consent","permit","document","agree"],"variants":{"outline":"ebc0"}},"lifebuoy-off":{"name":"lifebuoy-off","category":"","tags":["life ring","help","support"],"variants":{"outline":"f154"}},"lifebuoy":{"name":"lifebuoy","category":"","tags":["life ring","help","support"],"variants":{"outline":"eadd"}},"lighter":{"name":"lighter","category":"","tags":["fire","flame","camping","light","burn","adventure"],"variants":{"outline":"f794"}},"line-dashed":{"name":"line-dashed","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"eea7"}},"line-dotted":{"name":"line-dotted","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"eea8"}},"line-height":{"name":"line-height","category":"Text","tags":["space","inline","display"],"variants":{"outline":"eb94"}},"line-scan":{"name":"line-scan","category":"","tags":[],"variants":{"outline":"fcb8"}},"line":{"name":"line","category":"Design","tags":["geometric","segment","link","connection"],"variants":{"outline":"ec40"}},"link-minus":{"name":"link-minus","category":"","tags":[],"variants":{"outline":"fd16"}},"link-off":{"name":"link-off","category":"Text","tags":["zoom-filled"],"variants":{"outline":"f402"}},"link-plus":{"name":"link-plus","category":"","tags":[],"variants":{"outline":"fd17"}},"link":{"name":"link","category":"Text","tags":["zoom-filled"],"variants":{"outline":"eade"}},"list-check":{"name":"list-check","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"eb6a"}},"list-details":{"name":"list-details","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"ef40"}},"list-letters":{"name":"list-letters","category":"","tags":[],"variants":{"outline":"fc47"}},"list-numbers":{"name":"list-numbers","category":"Text","tags":["to-do","checklist","form","template","task","reminder","schedule","agenda"],"variants":{"outline":"ef11"}},"list-search":{"name":"list-search","category":"Text","tags":["find","agenda","shopping"],"variants":{"outline":"eea9"}},"list-tree":{"name":"list-tree","category":"","tags":[],"variants":{"outline":"fafa"}},"list":{"name":"list","category":"Text","tags":["task","unordered","bullets","agenda","shopping"],"variants":{"outline":"eb6b"}},"live-photo-off":{"name":"live-photo-off","category":"Photography","tags":["capture","photo","movement","sound","memory","image","camera"],"variants":{"outline":"f403"}},"live-photo":{"name":"live-photo","category":"Photography","tags":["capture","photo","movement","sound","memory","image","camera"],"variants":{"outline":"eadf","filled":"fed1"}},"live-view":{"name":"live-view","category":"Map","tags":["camera","preview","image","photo"],"variants":{"outline":"ec6b"}},"load-balancer":{"name":"load-balancer","category":"Computers","tags":[],"variants":{"outline":"fa5c"}},"loader-2":{"name":"loader-2","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"f226"}},"loader-3":{"name":"loader-3","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"f513"}},"loader-quarter":{"name":"loader-quarter","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"eca2"}},"loader":{"name":"loader","category":"System","tags":["process","download","upload","loader","loading"],"variants":{"outline":"eca3"}},"location-bolt":{"name":"location-bolt","category":"","tags":[],"variants":{"outline":"fbaf"}},"location-broken":{"name":"location-broken","category":"Map","tags":["delete","map","navigation","pin"],"variants":{"outline":"f2c4"}},"location-cancel":{"name":"location-cancel","category":"","tags":[],"variants":{"outline":"fbb0"}},"location-check":{"name":"location-check","category":"","tags":[],"variants":{"outline":"fbb1"}},"location-code":{"name":"location-code","category":"","tags":[],"variants":{"outline":"fbb2"}},"location-cog":{"name":"location-cog","category":"","tags":[],"variants":{"outline":"fbb3"}},"location-discount":{"name":"location-discount","category":"","tags":[],"variants":{"outline":"fbb4"}},"location-dollar":{"name":"location-dollar","category":"","tags":[],"variants":{"outline":"fbb5"}},"location-down":{"name":"location-down","category":"","tags":[],"variants":{"outline":"fbb6"}},"location-exclamation":{"name":"location-exclamation","category":"","tags":[],"variants":{"outline":"fbb7"}},"location-heart":{"name":"location-heart","category":"","tags":[],"variants":{"outline":"fbb8"}},"location-minus":{"name":"location-minus","category":"","tags":[],"variants":{"outline":"fbb9"}},"location-off":{"name":"location-off","category":"Map","tags":["navigation","map","direction","discover","travel"],"variants":{"outline":"f155"}},"location-pause":{"name":"location-pause","category":"","tags":[],"variants":{"outline":"fbba"}},"location-pin":{"name":"location-pin","category":"","tags":[],"variants":{"outline":"fbbb"}},"location-plus":{"name":"location-plus","category":"","tags":[],"variants":{"outline":"fbbc"}},"location-question":{"name":"location-question","category":"","tags":[],"variants":{"outline":"fbbd"}},"location-search":{"name":"location-search","category":"","tags":[],"variants":{"outline":"fbbe"}},"location-share":{"name":"location-share","category":"","tags":[],"variants":{"outline":"fbbf"}},"location-star":{"name":"location-star","category":"","tags":[],"variants":{"outline":"fbc0"}},"location-up":{"name":"location-up","category":"","tags":[],"variants":{"outline":"fbc1"}},"location-x":{"name":"location-x","category":"","tags":[],"variants":{"outline":"fbc2"}},"location":{"name":"location","category":"Map","tags":["navigation","map","direction","discover","travel"],"variants":{"outline":"eae0","filled":"f67f"}},"lock-access-off":{"name":"lock-access-off","category":"System","tags":["block","limited","restricted","unavailable","confidential"],"variants":{"outline":"f404"}},"lock-access":{"name":"lock-access","category":"System","tags":["block","limited","restricted","unavailable","confidential"],"variants":{"outline":"eeaa"}},"lock-bitcoin":{"name":"lock-bitcoin","category":"","tags":[],"variants":{"outline":"ff37"}},"lock-bolt":{"name":"lock-bolt","category":"System","tags":[],"variants":{"outline":"f924"}},"lock-cancel":{"name":"lock-cancel","category":"System","tags":[],"variants":{"outline":"f925"}},"lock-check":{"name":"lock-check","category":"System","tags":[],"variants":{"outline":"f926"}},"lock-code":{"name":"lock-code","category":"System","tags":[],"variants":{"outline":"f927"}},"lock-cog":{"name":"lock-cog","category":"System","tags":[],"variants":{"outline":"f928"}},"lock-dollar":{"name":"lock-dollar","category":"System","tags":[],"variants":{"outline":"f929"}},"lock-down":{"name":"lock-down","category":"System","tags":[],"variants":{"outline":"f92a"}},"lock-exclamation":{"name":"lock-exclamation","category":"System","tags":[],"variants":{"outline":"f92b"}},"lock-heart":{"name":"lock-heart","category":"System","tags":[],"variants":{"outline":"f92c"}},"lock-minus":{"name":"lock-minus","category":"System","tags":[],"variants":{"outline":"f92d"}},"lock-off":{"name":"lock-off","category":"System","tags":["security","password","secure"],"variants":{"outline":"ed1e"}},"lock-open-2":{"name":"lock-open-2","category":"","tags":[],"variants":{"outline":"fea8"}},"lock-open-off":{"name":"lock-open-off","category":"System","tags":["security","password","secure","unprotected"],"variants":{"outline":"f156"}},"lock-open":{"name":"lock-open","category":"System","tags":["security","password","secure","unprotected"],"variants":{"outline":"eae1"}},"lock-pause":{"name":"lock-pause","category":"System","tags":[],"variants":{"outline":"f92e"}},"lock-pin":{"name":"lock-pin","category":"System","tags":[],"variants":{"outline":"f92f"}},"lock-plus":{"name":"lock-plus","category":"System","tags":[],"variants":{"outline":"f930"}},"lock-question":{"name":"lock-question","category":"System","tags":[],"variants":{"outline":"f931"}},"lock-search":{"name":"lock-search","category":"System","tags":[],"variants":{"outline":"f932"}},"lock-share":{"name":"lock-share","category":"System","tags":[],"variants":{"outline":"f933"}},"lock-square-rounded":{"name":"lock-square-rounded","category":"System","tags":["security","secure","locked","password","shape","safe"],"variants":{"outline":"f636","filled":"f6da"}},"lock-square":{"name":"lock-square","category":"System","tags":["privaty","safe","secure","privacy"],"variants":{"outline":"ef51"}},"lock-star":{"name":"lock-star","category":"System","tags":[],"variants":{"outline":"f934"}},"lock-up":{"name":"lock-up","category":"System","tags":[],"variants":{"outline":"f935"}},"lock-x":{"name":"lock-x","category":"System","tags":[],"variants":{"outline":"f936"}},"lock":{"name":"lock","category":"System","tags":["security","password","secure"],"variants":{"outline":"eae2","filled":"fe15"}},"logic-and":{"name":"logic-and","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f240"}},"logic-buffer":{"name":"logic-buffer","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f241"}},"logic-nand":{"name":"logic-nand","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f242"}},"logic-nor":{"name":"logic-nor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f243"}},"logic-not":{"name":"logic-not","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f244"}},"logic-or":{"name":"logic-or","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f245"}},"logic-xnor":{"name":"logic-xnor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f246"}},"logic-xor":{"name":"logic-xor","category":"Logic","tags":["gate","technology","electirical","it"],"variants":{"outline":"f247"}},"login-2":{"name":"login-2","category":"","tags":[],"variants":{"outline":"fc76"}},"login":{"name":"login","category":"Arrows","tags":["initialize","password","enter","account","permission"],"variants":{"outline":"eba7"}},"logout-2":{"name":"logout-2","category":"System","tags":[],"variants":{"outline":"fa7e"}},"logout":{"name":"logout","category":"System","tags":["exit","shut","unplug","close"],"variants":{"outline":"eba8"}},"logs":{"name":"logs","category":"","tags":[],"variants":{"outline":"fea7"}},"lollipop-off":{"name":"lollipop-off","category":"Food","tags":["candy","food","sweet","halloween","dessert","sugar"],"variants":{"outline":"f157"}},"lollipop":{"name":"lollipop","category":"Food","tags":["candy","food","sweet","halloween","dessert","sugar"],"variants":{"outline":"efcc"}},"luggage-off":{"name":"luggage-off","category":"","tags":["travel","vacation","suitcase","bag","holiday","baggage"],"variants":{"outline":"f158"}},"luggage":{"name":"luggage","category":"","tags":["travel","vacation","suitcase","bag","holiday","baggage"],"variants":{"outline":"efad"}},"lungs-off":{"name":"lungs-off","category":"Health","tags":["anatomy","human","medical","respiratory","breathe","organ"],"variants":{"outline":"f405"}},"lungs":{"name":"lungs","category":"Health","tags":["anatomy","human","medical","respiratory","breathe","organ"],"variants":{"outline":"ef62","filled":"fe14"}},"macro-off":{"name":"macro-off","category":"Photography","tags":["video","photography","photo","camera"],"variants":{"outline":"f406"}},"macro":{"name":"macro","category":"Photography","tags":["video","photography","photo","camera"],"variants":{"outline":"eeab","filled":"fe13"}},"magnet-off":{"name":"magnet-off","category":"","tags":["magnetic field","pole","iron","attract"],"variants":{"outline":"f159"}},"magnet":{"name":"magnet","category":"","tags":["magnetic field","pole","iron","attract"],"variants":{"outline":"eae3","filled":"fe12"}},"magnetic":{"name":"magnetic","category":"","tags":[],"variants":{"outline":"fcb9"}},"mail-ai":{"name":"mail-ai","category":"Communication","tags":[],"variants":{"outline":"fa31"}},"mail-bitcoin":{"name":"mail-bitcoin","category":"","tags":[],"variants":{"outline":"ff36"}},"mail-bolt":{"name":"mail-bolt","category":"Communication","tags":[],"variants":{"outline":"f937"}},"mail-cancel":{"name":"mail-cancel","category":"Communication","tags":[],"variants":{"outline":"f938"}},"mail-check":{"name":"mail-check","category":"Communication","tags":[],"variants":{"outline":"f939"}},"mail-code":{"name":"mail-code","category":"Communication","tags":[],"variants":{"outline":"f93a"}},"mail-cog":{"name":"mail-cog","category":"Communication","tags":[],"variants":{"outline":"f93b"}},"mail-dollar":{"name":"mail-dollar","category":"Communication","tags":[],"variants":{"outline":"f93c"}},"mail-down":{"name":"mail-down","category":"Communication","tags":[],"variants":{"outline":"f93d"}},"mail-exclamation":{"name":"mail-exclamation","category":"Communication","tags":[],"variants":{"outline":"f93e"}},"mail-fast":{"name":"mail-fast","category":"Communication","tags":["send","massage","quick","delivery","speed","communication"],"variants":{"outline":"f069"}},"mail-forward":{"name":"mail-forward","category":"Communication","tags":["send","recipient","email","inbox","message"],"variants":{"outline":"eeac"}},"mail-heart":{"name":"mail-heart","category":"Communication","tags":[],"variants":{"outline":"f93f"}},"mail-minus":{"name":"mail-minus","category":"Communication","tags":[],"variants":{"outline":"f940"}},"mail-off":{"name":"mail-off","category":"Communication","tags":["inbox","gmail","email","envelope","message"],"variants":{"outline":"f15a"}},"mail-opened":{"name":"mail-opened","category":"Communication","tags":["inbox","gmail","email","envelope","message","read"],"variants":{"outline":"eae4","filled":"fa48"}},"mail-pause":{"name":"mail-pause","category":"Communication","tags":[],"variants":{"outline":"f941"}},"mail-pin":{"name":"mail-pin","category":"Communication","tags":[],"variants":{"outline":"f942"}},"mail-plus":{"name":"mail-plus","category":"Communication","tags":[],"variants":{"outline":"f943"}},"mail-question":{"name":"mail-question","category":"Communication","tags":[],"variants":{"outline":"f944"}},"mail-search":{"name":"mail-search","category":"Communication","tags":[],"variants":{"outline":"f945"}},"mail-share":{"name":"mail-share","category":"Communication","tags":[],"variants":{"outline":"f946"}},"mail-star":{"name":"mail-star","category":"Communication","tags":[],"variants":{"outline":"f947"}},"mail-up":{"name":"mail-up","category":"Communication","tags":[],"variants":{"outline":"f948"}},"mail-x":{"name":"mail-x","category":"Communication","tags":[],"variants":{"outline":"f949"}},"mail":{"name":"mail","category":"Communication","tags":["inbox","gmail","email","envelope","message"],"variants":{"outline":"eae5","filled":"fa47"}},"mailbox-off":{"name":"mailbox-off","category":"Communication","tags":["send","recipient","email","inbox","message","reply","post"],"variants":{"outline":"f15b"}},"mailbox":{"name":"mailbox","category":"Communication","tags":["send","recipient","email","inbox","message","reply","post"],"variants":{"outline":"eead"}},"man":{"name":"man","category":"","tags":["guy","boy","male","gender"],"variants":{"outline":"eae6","filled":"fe11"}},"manual-gearbox":{"name":"manual-gearbox","category":"","tags":["car","vehicle","torque","transmission","mechanics","motor","engine"],"variants":{"outline":"ed7b","filled":"fe10"}},"map-2":{"name":"map-2","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"eae7"}},"map-bolt":{"name":"map-bolt","category":"","tags":[],"variants":{"outline":"fbc3"}},"map-cancel":{"name":"map-cancel","category":"","tags":[],"variants":{"outline":"fbc4"}},"map-check":{"name":"map-check","category":"","tags":[],"variants":{"outline":"fbc5"}},"map-code":{"name":"map-code","category":"","tags":[],"variants":{"outline":"fbc6"}},"map-cog":{"name":"map-cog","category":"","tags":[],"variants":{"outline":"fbc7"}},"map-discount":{"name":"map-discount","category":"","tags":[],"variants":{"outline":"fbc8"}},"map-dollar":{"name":"map-dollar","category":"","tags":[],"variants":{"outline":"fbc9"}},"map-down":{"name":"map-down","category":"","tags":[],"variants":{"outline":"fbca"}},"map-east":{"name":"map-east","category":"Map","tags":[],"variants":{"outline":"fc5d"}},"map-exclamation":{"name":"map-exclamation","category":"","tags":[],"variants":{"outline":"fbcb"}},"map-heart":{"name":"map-heart","category":"","tags":[],"variants":{"outline":"fbcc"}},"map-minus":{"name":"map-minus","category":"","tags":[],"variants":{"outline":"fbcd"}},"map-north":{"name":"map-north","category":"Map","tags":[],"variants":{"outline":"fc5e"}},"map-off":{"name":"map-off","category":"Map","tags":["navigation","location","travel"],"variants":{"outline":"f15c"}},"map-pause":{"name":"map-pause","category":"","tags":[],"variants":{"outline":"fbce"}},"map-pin-2":{"name":"map-pin-2","category":"","tags":[],"variants":{"outline":"fc48"}},"map-pin-bolt":{"name":"map-pin-bolt","category":"Map","tags":[],"variants":{"outline":"f94a"}},"map-pin-cancel":{"name":"map-pin-cancel","category":"Map","tags":[],"variants":{"outline":"f94b"}},"map-pin-check":{"name":"map-pin-check","category":"Map","tags":[],"variants":{"outline":"f94c"}},"map-pin-code":{"name":"map-pin-code","category":"Map","tags":[],"variants":{"outline":"f94d"}},"map-pin-cog":{"name":"map-pin-cog","category":"Map","tags":[],"variants":{"outline":"f94e"}},"map-pin-dollar":{"name":"map-pin-dollar","category":"Map","tags":[],"variants":{"outline":"f94f"}},"map-pin-down":{"name":"map-pin-down","category":"Map","tags":[],"variants":{"outline":"f950"}},"map-pin-exclamation":{"name":"map-pin-exclamation","category":"Map","tags":[],"variants":{"outline":"f951"}},"map-pin-heart":{"name":"map-pin-heart","category":"Map","tags":[],"variants":{"outline":"f952"}},"map-pin-minus":{"name":"map-pin-minus","category":"Map","tags":[],"variants":{"outline":"f953"}},"map-pin-off":{"name":"map-pin-off","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"ecf3"}},"map-pin-pause":{"name":"map-pin-pause","category":"Map","tags":[],"variants":{"outline":"f954"}},"map-pin-pin":{"name":"map-pin-pin","category":"Map","tags":[],"variants":{"outline":"f955"}},"map-pin-plus":{"name":"map-pin-plus","category":"Map","tags":[],"variants":{"outline":"f956"}},"map-pin-question":{"name":"map-pin-question","category":"Map","tags":[],"variants":{"outline":"f957"}},"map-pin-search":{"name":"map-pin-search","category":"Map","tags":[],"variants":{"outline":"f958"}},"map-pin-share":{"name":"map-pin-share","category":"Map","tags":["location","gps","pointer","marker","place","send"],"variants":{"outline":"f795"}},"map-pin-star":{"name":"map-pin-star","category":"Map","tags":[],"variants":{"outline":"f959"}},"map-pin-up":{"name":"map-pin-up","category":"Map","tags":[],"variants":{"outline":"f95a"}},"map-pin-x":{"name":"map-pin-x","category":"Map","tags":[],"variants":{"outline":"f95b"}},"map-pin":{"name":"map-pin","category":"Map","tags":["navigation","location","travel","pin","position","marker"],"variants":{"outline":"eae8","filled":"f680"}},"map-pins":{"name":"map-pins","category":"Map","tags":["place","direction","travel","destination","mark","location","address"],"variants":{"outline":"ed5e"}},"map-plus":{"name":"map-plus","category":"","tags":[],"variants":{"outline":"fbcf"}},"map-question":{"name":"map-question","category":"","tags":[],"variants":{"outline":"fbd0"}},"map-route":{"name":"map-route","category":"","tags":[],"variants":{"outline":"fc79"}},"map-search":{"name":"map-search","category":"Map","tags":["location","navigation","gps","find","pin"],"variants":{"outline":"ef82"}},"map-share":{"name":"map-share","category":"","tags":[],"variants":{"outline":"fbd1"}},"map-south":{"name":"map-south","category":"Map","tags":[],"variants":{"outline":"fc5f"}},"map-star":{"name":"map-star","category":"","tags":[],"variants":{"outline":"fbd2"}},"map-up":{"name":"map-up","category":"","tags":[],"variants":{"outline":"fbd3"}},"map-west":{"name":"map-west","category":"Map","tags":[],"variants":{"outline":"fc60"}},"map-x":{"name":"map-x","category":"","tags":[],"variants":{"outline":"fbd4"}},"map":{"name":"map","category":"Map","tags":["navigation","location","travel"],"variants":{"outline":"eae9"}},"markdown-off":{"name":"markdown-off","category":"Text","tags":["price","valuation","cost","exchange"],"variants":{"outline":"f407"}},"markdown":{"name":"markdown","category":"Text","tags":["price","valuation","cost","exchange"],"variants":{"outline":"ec41"}},"marquee-2":{"name":"marquee-2","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"eeae"}},"marquee-off":{"name":"marquee-off","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"f15d"}},"marquee":{"name":"marquee","category":"","tags":["tag","tracer","html","animation","text","graphic"],"variants":{"outline":"ec77"}},"mars":{"name":"mars","category":"Symbols","tags":["male"],"variants":{"outline":"ec80"}},"mask-off":{"name":"mask-off","category":"Design","tags":["edit","layer","mask","tool","design"],"variants":{"outline":"eeaf"}},"mask":{"name":"mask","category":"Design","tags":["edit","layer","mask","tool","design"],"variants":{"outline":"eeb0"}},"masks-theater-off":{"name":"masks-theater-off","category":"Map","tags":["cinema","comedy","acting","face","art"],"variants":{"outline":"f408"}},"masks-theater":{"name":"masks-theater","category":"Map","tags":["cinema","comedy","acting","face","art"],"variants":{"outline":"f263"}},"massage":{"name":"massage","category":"Health","tags":["physiotherapy","spa","relax","sports","therapy","treatment","spine"],"variants":{"outline":"eeb1"}},"matchstick":{"name":"matchstick","category":"","tags":["fire","flame","burn","spark"],"variants":{"outline":"f577"}},"math-1-divide-2":{"name":"math-1-divide-2","category":"Math","tags":["calculations","half","mathematic"],"variants":{"outline":"f4e2"}},"math-1-divide-3":{"name":"math-1-divide-3","category":"Math","tags":["calculations","mathematic","quarter"],"variants":{"outline":"f4e3"}},"math-avg":{"name":"math-avg","category":"Math","tags":["symbol"],"variants":{"outline":"f0f4"}},"math-cos":{"name":"math-cos","category":"Math","tags":["mathematic","cosinus","trigonometry","function"],"variants":{"outline":"ff1f"}},"math-ctg":{"name":"math-ctg","category":"","tags":[],"variants":{"outline":"ff35"}},"math-equal-greater":{"name":"math-equal-greater","category":"Math","tags":["mathematic","than","more","equation","sign"],"variants":{"outline":"f4e4"}},"math-equal-lower":{"name":"math-equal-lower","category":"Math","tags":["mathematic","less","than","equation","sign"],"variants":{"outline":"f4e5"}},"math-function-off":{"name":"math-function-off","category":"Math","tags":["linear","statyscics","graph"],"variants":{"outline":"f15e"}},"math-function-y":{"name":"math-function-y","category":"Math","tags":["mathematic","sign","x","expression"],"variants":{"outline":"f4e6"}},"math-function":{"name":"math-function","category":"Math","tags":["linear","statyscics","graph"],"variants":{"outline":"eeb2"}},"math-greater":{"name":"math-greater","category":"Math","tags":["mathematic","sign","expression","more"],"variants":{"outline":"f4e7"}},"math-integral-x":{"name":"math-integral-x","category":"Math","tags":["mathematic","sign","y","expression"],"variants":{"outline":"f4e8"}},"math-integral":{"name":"math-integral","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4e9"}},"math-integrals":{"name":"math-integrals","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ea"}},"math-lower":{"name":"math-lower","category":"Math","tags":["mathematic","sign","expressionm","less"],"variants":{"outline":"f4eb"}},"math-max-min":{"name":"math-max-min","category":"","tags":[],"variants":{"outline":"fda0"}},"math-max":{"name":"math-max","category":"Math","tags":["symbol"],"variants":{"outline":"f0f5"}},"math-min":{"name":"math-min","category":"Math","tags":["symbol"],"variants":{"outline":"f0f6"}},"math-not":{"name":"math-not","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ec"}},"math-off":{"name":"math-off","category":"Math","tags":["subject","count","plus","minus","times"],"variants":{"outline":"f409"}},"math-pi-divide-2":{"name":"math-pi-divide-2","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ed"}},"math-pi":{"name":"math-pi","category":"Math","tags":["mathematic","sign","expression"],"variants":{"outline":"f4ee"}},"math-sec":{"name":"math-sec","category":"","tags":[],"variants":{"outline":"ff34"}},"math-sin":{"name":"math-sin","category":"Math","tags":["mathematic","sinus","trigonometry","function"],"variants":{"outline":"ff1e"}},"math-symbols":{"name":"math-symbols","category":"Math","tags":["calculator","equal","plus","multiplication","minus","math"],"variants":{"outline":"eeb3"}},"math-tg":{"name":"math-tg","category":"","tags":[],"variants":{"outline":"ff33"}},"math-x-divide-2":{"name":"math-x-divide-2","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4ef"}},"math-x-divide-y-2":{"name":"math-x-divide-y-2","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f0"}},"math-x-divide-y":{"name":"math-x-divide-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f1"}},"math-x-minus-x":{"name":"math-x-minus-x","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f2"}},"math-x-minus-y":{"name":"math-x-minus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f3"}},"math-x-plus-x":{"name":"math-x-plus-x","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f4"}},"math-x-plus-y":{"name":"math-x-plus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f5"}},"math-xy":{"name":"math-xy","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f6"}},"math-y-minus-y":{"name":"math-y-minus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f7"}},"math-y-plus-y":{"name":"math-y-plus-y","category":"Math","tags":["mathematic","expression","equation"],"variants":{"outline":"f4f8"}},"math":{"name":"math","category":"Math","tags":["subject","count","plus","minus","times"],"variants":{"outline":"ebeb"}},"maximize-off":{"name":"maximize-off","category":"Media","tags":["fullscreen","maximize","expand","window","size","resize","direction"],"variants":{"outline":"f15f"}},"maximize":{"name":"maximize","category":"Media","tags":["fullscreen","maximize","expand","window","size","resize","direction"],"variants":{"outline":"eaea"}},"meat-off":{"name":"meat-off","category":"Food","tags":["food","beef","steak","chicken","sasuage","dinner"],"variants":{"outline":"f40a"}},"meat":{"name":"meat","category":"Food","tags":["food","beef","steak","chicken","sasuage","dinner"],"variants":{"outline":"ef12"}},"medal-2":{"name":"medal-2","category":"","tags":["decorate","uniform"],"variants":{"outline":"efcd"}},"medal":{"name":"medal","category":"","tags":["decorate","uniform"],"variants":{"outline":"ec78"}},"medical-cross-circle":{"name":"medical-cross-circle","category":"Map","tags":[],"variants":{"outline":"fae8"}},"medical-cross-off":{"name":"medical-cross-off","category":"Map","tags":["sign","hospital","help","indication"],"variants":{"outline":"f160"}},"medical-cross":{"name":"medical-cross","category":"Map","tags":["sign","hospital","help","indication"],"variants":{"outline":"ec2f","filled":"f681"}},"medicine-syrup":{"name":"medicine-syrup","category":"Health","tags":["bottle","pharmacy","healthcare","health","mixture","drug"],"variants":{"outline":"ef63"}},"meeple":{"name":"meeple","category":"Sport","tags":["pawn","board","game","wood"],"variants":{"outline":"f514"}},"melon":{"name":"melon","category":"Food","tags":[],"variants":{"outline":"fc7a"}},"menorah":{"name":"menorah","category":"Symbols","tags":["judaism","religion","cultures","jewish"],"variants":{"outline":"f58c"}},"menu-2":{"name":"menu-2","category":"System","tags":["bars","hamburger","navigation","burger"],"variants":{"outline":"ec42"}},"menu-3":{"name":"menu-3","category":"","tags":[],"variants":{"outline":"ff43"}},"menu-4":{"name":"menu-4","category":"","tags":[],"variants":{"outline":"ff42"}},"menu-deep":{"name":"menu-deep","category":"","tags":[],"variants":{"outline":"fafb"}},"menu-order":{"name":"menu-order","category":"System","tags":["move","arrows","up","down","south","north","bottom","top"],"variants":{"outline":"f5f5"}},"menu":{"name":"menu","category":"System","tags":["bars","hamburger","navigation","burger"],"variants":{"outline":"eaeb"}},"message-2-bolt":{"name":"message-2-bolt","category":"Communication","tags":[],"variants":{"outline":"f95c"}},"message-2-cancel":{"name":"message-2-cancel","category":"Communication","tags":[],"variants":{"outline":"f95d"}},"message-2-check":{"name":"message-2-check","category":"Communication","tags":[],"variants":{"outline":"f95e"}},"message-2-code":{"name":"message-2-code","category":"Communication","tags":["coding","programming","chat","program"],"variants":{"outline":"f012"}},"message-2-cog":{"name":"message-2-cog","category":"Communication","tags":[],"variants":{"outline":"f95f"}},"message-2-dollar":{"name":"message-2-dollar","category":"Communication","tags":[],"variants":{"outline":"f960"}},"message-2-down":{"name":"message-2-down","category":"Communication","tags":[],"variants":{"outline":"f961"}},"message-2-exclamation":{"name":"message-2-exclamation","category":"Communication","tags":[],"variants":{"outline":"f962"}},"message-2-heart":{"name":"message-2-heart","category":"Communication","tags":[],"variants":{"outline":"f963"}},"message-2-minus":{"name":"message-2-minus","category":"Communication","tags":[],"variants":{"outline":"f964"}},"message-2-off":{"name":"message-2-off","category":"Communication","tags":["comment","chat","reply","faq"],"variants":{"outline":"f40b"}},"message-2-pause":{"name":"message-2-pause","category":"Communication","tags":[],"variants":{"outline":"f965"}},"message-2-pin":{"name":"message-2-pin","category":"Communication","tags":[],"variants":{"outline":"f966"}},"message-2-plus":{"name":"message-2-plus","category":"Communication","tags":[],"variants":{"outline":"f967"}},"message-2-question":{"name":"message-2-question","category":"Communication","tags":[],"variants":{"outline":"f968"}},"message-2-search":{"name":"message-2-search","category":"Communication","tags":[],"variants":{"outline":"f969"}},"message-2-share":{"name":"message-2-share","category":"Communication","tags":["sharing","email","mail","communication","post"],"variants":{"outline":"f077"}},"message-2-star":{"name":"message-2-star","category":"Communication","tags":[],"variants":{"outline":"f96a"}},"message-2-up":{"name":"message-2-up","category":"Communication","tags":[],"variants":{"outline":"f96b"}},"message-2-x":{"name":"message-2-x","category":"Communication","tags":[],"variants":{"outline":"f96c"}},"message-2":{"name":"message-2","category":"Communication","tags":["comment","chat","reply","faq"],"variants":{"outline":"eaec"}},"message-bolt":{"name":"message-bolt","category":"Communication","tags":[],"variants":{"outline":"f96d"}},"message-cancel":{"name":"message-cancel","category":"Communication","tags":[],"variants":{"outline":"f96e"}},"message-chatbot":{"name":"message-chatbot","category":"Communication","tags":["automatic","robot","assistant","support"],"variants":{"outline":"f38a","filled":"fed0"}},"message-check":{"name":"message-check","category":"Communication","tags":[],"variants":{"outline":"f96f"}},"message-circle-bolt":{"name":"message-circle-bolt","category":"Communication","tags":[],"variants":{"outline":"f970"}},"message-circle-cancel":{"name":"message-circle-cancel","category":"Communication","tags":[],"variants":{"outline":"f971"}},"message-circle-check":{"name":"message-circle-check","category":"Communication","tags":[],"variants":{"outline":"f972"}},"message-circle-code":{"name":"message-circle-code","category":"Communication","tags":[],"variants":{"outline":"f973"}},"message-circle-cog":{"name":"message-circle-cog","category":"Communication","tags":[],"variants":{"outline":"f974"}},"message-circle-dollar":{"name":"message-circle-dollar","category":"Communication","tags":[],"variants":{"outline":"f975"}},"message-circle-down":{"name":"message-circle-down","category":"Communication","tags":[],"variants":{"outline":"f976"}},"message-circle-exclamation":{"name":"message-circle-exclamation","category":"Communication","tags":[],"variants":{"outline":"f977"}},"message-circle-heart":{"name":"message-circle-heart","category":"Communication","tags":[],"variants":{"outline":"f978"}},"message-circle-minus":{"name":"message-circle-minus","category":"Communication","tags":[],"variants":{"outline":"f979"}},"message-circle-off":{"name":"message-circle-off","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"ed40"}},"message-circle-pause":{"name":"message-circle-pause","category":"Communication","tags":[],"variants":{"outline":"f97a"}},"message-circle-pin":{"name":"message-circle-pin","category":"Communication","tags":[],"variants":{"outline":"f97b"}},"message-circle-plus":{"name":"message-circle-plus","category":"Communication","tags":[],"variants":{"outline":"f97c"}},"message-circle-question":{"name":"message-circle-question","category":"Communication","tags":[],"variants":{"outline":"f97d"}},"message-circle-search":{"name":"message-circle-search","category":"Communication","tags":[],"variants":{"outline":"f97e"}},"message-circle-share":{"name":"message-circle-share","category":"Communication","tags":[],"variants":{"outline":"f97f"}},"message-circle-star":{"name":"message-circle-star","category":"Communication","tags":[],"variants":{"outline":"f980"}},"message-circle-up":{"name":"message-circle-up","category":"Communication","tags":[],"variants":{"outline":"f981"}},"message-circle-user":{"name":"message-circle-user","category":"","tags":[],"variants":{"outline":"fec5"}},"message-circle-x":{"name":"message-circle-x","category":"Communication","tags":[],"variants":{"outline":"f982"}},"message-circle":{"name":"message-circle","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"eaed","filled":"fecf"}},"message-code":{"name":"message-code","category":"Communication","tags":["coding","programming","chat","program"],"variants":{"outline":"f013"}},"message-cog":{"name":"message-cog","category":"Communication","tags":[],"variants":{"outline":"f983"}},"message-dollar":{"name":"message-dollar","category":"Communication","tags":[],"variants":{"outline":"f984"}},"message-dots":{"name":"message-dots","category":"Communication","tags":["comment","chat","reply"],"variants":{"outline":"eaee"}},"message-down":{"name":"message-down","category":"Communication","tags":[],"variants":{"outline":"f985"}},"message-exclamation":{"name":"message-exclamation","category":"Communication","tags":[],"variants":{"outline":"f986"}},"message-forward":{"name":"message-forward","category":"Communication","tags":["email","mail","send","chat","communication","arrow"],"variants":{"outline":"f28f"}},"message-heart":{"name":"message-heart","category":"Communication","tags":[],"variants":{"outline":"f987"}},"message-language":{"name":"message-language","category":"Communication","tags":["communication","translate","alphabet","letter"],"variants":{"outline":"efae"}},"message-minus":{"name":"message-minus","category":"Communication","tags":[],"variants":{"outline":"f988"}},"message-off":{"name":"message-off","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq"],"variants":{"outline":"ed41"}},"message-pause":{"name":"message-pause","category":"Communication","tags":[],"variants":{"outline":"f989"}},"message-pin":{"name":"message-pin","category":"Communication","tags":[],"variants":{"outline":"f98a"}},"message-plus":{"name":"message-plus","category":"Communication","tags":["comment","chat","reply","communication","conversation"],"variants":{"outline":"ec9a"}},"message-question":{"name":"message-question","category":"Communication","tags":[],"variants":{"outline":"f98b"}},"message-reply":{"name":"message-reply","category":"","tags":[],"variants":{"outline":"fd4d"}},"message-report":{"name":"message-report","category":"Communication","tags":["comment","chat","reply","communication","conversation"],"variants":{"outline":"ec9b","filled":"fece"}},"message-search":{"name":"message-search","category":"Communication","tags":[],"variants":{"outline":"f98c"}},"message-share":{"name":"message-share","category":"Communication","tags":["sharing","email","mail","communication","post"],"variants":{"outline":"f078"}},"message-star":{"name":"message-star","category":"Communication","tags":[],"variants":{"outline":"f98d"}},"message-up":{"name":"message-up","category":"Communication","tags":[],"variants":{"outline":"f98e"}},"message-user":{"name":"message-user","category":"","tags":[],"variants":{"outline":"fec4"}},"message-x":{"name":"message-x","category":"Communication","tags":[],"variants":{"outline":"f98f"}},"message":{"name":"message","category":"Communication","tags":["comment","chat","reply","communication","conversation","faq"],"variants":{"outline":"eaef","filled":"fecd"}},"messages-off":{"name":"messages-off","category":"Communication","tags":["chat","reply","comment","conversation","communication","faq"],"variants":{"outline":"ed42"}},"messages":{"name":"messages","category":"Communication","tags":["chat","reply","comment","conversation","communication","faq"],"variants":{"outline":"eb6c"}},"meteor-off":{"name":"meteor-off","category":"Nature","tags":["space","comet","astronomy","galaxy","cosmos"],"variants":{"outline":"f40c"}},"meteor":{"name":"meteor","category":"Nature","tags":["space","comet","astronomy","galaxy","cosmos"],"variants":{"outline":"f1fd"}},"meter-cube":{"name":"meter-cube","category":"","tags":[],"variants":{"outline":"fd7c"}},"meter-square":{"name":"meter-square","category":"","tags":[],"variants":{"outline":"fd7d"}},"metronome":{"name":"metronome","category":"","tags":[],"variants":{"outline":"fd25"}},"michelin-bib-gourmand":{"name":"michelin-bib-gourmand","category":"Food","tags":[],"variants":{"outline":"fae9"}},"michelin-star-green":{"name":"michelin-star-green","category":"Food","tags":[],"variants":{"outline":"faea"}},"michelin-star":{"name":"michelin-star","category":"Food","tags":[],"variants":{"outline":"faeb"}},"mickey":{"name":"mickey","category":"","tags":["fable","cartoon","mouse","kids"],"variants":{"outline":"f2a3","filled":"f683"}},"microphone-2-off":{"name":"microphone-2-off","category":"Media","tags":["record","sound","listen","sing"],"variants":{"outline":"f40d"}},"microphone-2":{"name":"microphone-2","category":"Media","tags":["record","sound","listen","sing"],"variants":{"outline":"ef2c"}},"microphone-off":{"name":"microphone-off","category":"Media","tags":["record","sound","listen"],"variants":{"outline":"ed16"}},"microphone":{"name":"microphone","category":"Media","tags":["record","sound","listen"],"variants":{"outline":"eaf0","filled":"fe0f"}},"microscope-off":{"name":"microscope-off","category":"Health","tags":["school","education","learning","laboratory","experimental","chemistry","biology","medical","bacteria","technology","test"],"variants":{"outline":"f40e"}},"microscope":{"name":"microscope","category":"Health","tags":["school","education","learning","laboratory","experimental","chemistry","biology","medical","bacteria","technology","test"],"variants":{"outline":"ef64"}},"microwave-off":{"name":"microwave-off","category":"Food","tags":["oven","kitchen","cooking","food","cook"],"variants":{"outline":"f264"}},"microwave":{"name":"microwave","category":"Food","tags":["oven","kitchen","cooking","food","cook"],"variants":{"outline":"f248","filled":"fe0e"}},"military-award":{"name":"military-award","category":"","tags":["achievement","honor","badge","medal","prize","army"],"variants":{"outline":"f079"}},"military-rank":{"name":"military-rank","category":"","tags":["soldier","army","private","private second class","private first class","specialist","corporal","sergeant","staff sergeant"],"variants":{"outline":"efcf","filled":"ff5e"}},"milk-off":{"name":"milk-off","category":"Food","tags":["food","drink","cow","healthy","breakfast","bottle","coffee"],"variants":{"outline":"f40f"}},"milk":{"name":"milk","category":"Food","tags":["food","drink","cow","healthy","breakfast","bottle","coffee"],"variants":{"outline":"ef13"}},"milkshake":{"name":"milkshake","category":"Food","tags":["drink","sweet","food","cocktail","cream"],"variants":{"outline":"f4c8"}},"minimize":{"name":"minimize","category":"Media","tags":["exit","close"],"variants":{"outline":"eaf1"}},"minus-vertical":{"name":"minus-vertical","category":"","tags":["subtract","less","divide"],"variants":{"outline":"eeb4"}},"minus":{"name":"minus","category":"Math","tags":["subtract","less"],"variants":{"outline":"eaf2"}},"mist-off":{"name":"mist-off","category":"Weather","tags":["weather","visibility"],"variants":{"outline":"f410"}},"mist":{"name":"mist","category":"Weather","tags":["weather","visibility"],"variants":{"outline":"ec30"}},"mobiledata-off":{"name":"mobiledata-off","category":"","tags":[],"variants":{"outline":"f9f4"}},"mobiledata":{"name":"mobiledata","category":"","tags":[],"variants":{"outline":"f9f5"}},"moneybag":{"name":"moneybag","category":"","tags":["finance","cash","dollar","currency","bank"],"variants":{"outline":"f506"}},"monkeybar":{"name":"monkeybar","category":"Maps","tags":["playground","park","monkey","bar","jungle","gym","exercise","fitness","outdoor","fun","children","kids","play","swing","jungle gym"],"variants":{"outline":"feb4"}},"mood-angry":{"name":"mood-angry","category":"Mood","tags":["mad","feeling","face","nervous"],"variants":{"outline":"f2de","filled":"ff0a"}},"mood-annoyed-2":{"name":"mood-annoyed-2","category":"Mood","tags":["appalled","agitated","upset","angry","face"],"variants":{"outline":"f2df"}},"mood-annoyed":{"name":"mood-annoyed","category":"Mood","tags":["appalled","agitated","upset","angry","face"],"variants":{"outline":"f2e0"}},"mood-bitcoin":{"name":"mood-bitcoin","category":"","tags":[],"variants":{"outline":"ff32"}},"mood-boy":{"name":"mood-boy","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ed2d"}},"mood-check":{"name":"mood-check","category":"Mood","tags":["emotion","feeling","happy","tick","accept","face"],"variants":{"outline":"f7b3"}},"mood-cog":{"name":"mood-cog","category":"Mood","tags":["emotion","feeling","happy","gear","preferences","face"],"variants":{"outline":"f7b4"}},"mood-confuzed":{"name":"mood-confuzed","category":"Mood","tags":["face","emoji","emotion","frown"],"variants":{"outline":"eaf3","filled":"f7f2"}},"mood-crazy-happy":{"name":"mood-crazy-happy","category":"Mood","tags":["good","excited","cheerful","jolly","delighted","lucky"],"variants":{"outline":"ed90","filled":"ff09"}},"mood-cry":{"name":"mood-cry","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"ecbb"}},"mood-dollar":{"name":"mood-dollar","category":"Mood","tags":["emotion","feeling","happy","face","money","coin"],"variants":{"outline":"f7b5"}},"mood-edit":{"name":"mood-edit","category":"Mood","tags":[],"variants":{"outline":"fa05"}},"mood-empty":{"name":"mood-empty","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eeb5","filled":"f7f3"}},"mood-happy":{"name":"mood-happy","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf4","filled":"f7f4"}},"mood-heart":{"name":"mood-heart","category":"Mood","tags":["emotion","feeling","happy","face","love","care","romantic"],"variants":{"outline":"f7b6"}},"mood-kid":{"name":"mood-kid","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ec03","filled":"f7f5"}},"mood-look-down":{"name":"mood-look-down","category":"","tags":["downward-look","gaze-down","low-mood","sad","disheartened","dejected","downcast","downward-glance","melancholy","blue"],"variants":{"outline":"fd37"}},"mood-look-left":{"name":"mood-look-left","category":"Mood","tags":["west","face","direction"],"variants":{"outline":"f2c5"}},"mood-look-right":{"name":"mood-look-right","category":"Mood","tags":["east","face","direction"],"variants":{"outline":"f2c6"}},"mood-look-up":{"name":"mood-look-up","category":"","tags":["upward-look","gaze-up","optimistic","positive-mood","cheerful","uplifting","hopeful","skyward-glance","inspired","joyful"],"variants":{"outline":"fd38"}},"mood-minus":{"name":"mood-minus","category":"Mood","tags":["emotion","feeling","happy","face","cancel","remove","delete"],"variants":{"outline":"f7b7"}},"mood-nerd":{"name":"mood-nerd","category":"Mood","tags":["geek","face","bore"],"variants":{"outline":"f2e1"}},"mood-nervous":{"name":"mood-nervous","category":"Mood","tags":["angry","stressed","worry","frustrated"],"variants":{"outline":"ef96"}},"mood-neutral":{"name":"mood-neutral","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf5","filled":"f7f6"}},"mood-off":{"name":"mood-off","category":"Mood","tags":["sad","happy","emoji","smiley","neutral","face"],"variants":{"outline":"f161"}},"mood-pin":{"name":"mood-pin","category":"Mood","tags":["emotion","feeling","happy","face","location","map"],"variants":{"outline":"f7b8"}},"mood-plus":{"name":"mood-plus","category":"Mood","tags":["emotion","feeling","happy","face","add","new"],"variants":{"outline":"f7b9"}},"mood-puzzled":{"name":"mood-puzzled","category":"","tags":["confused-mood","perplexed","bewildered","puzzled","uncertain","ambiguous","confounding","mystery","riddle","enigma"],"variants":{"outline":"fd39"}},"mood-sad-2":{"name":"mood-sad-2","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"f2e2"}},"mood-sad-dizzy":{"name":"mood-sad-dizzy","category":"Mood","tags":["face","emoji","emotion","mad","displeased"],"variants":{"outline":"f2e3"}},"mood-sad-squint":{"name":"mood-sad-squint","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"f2e4"}},"mood-sad":{"name":"mood-sad","category":"Mood","tags":["face","emoji","emotion","mad"],"variants":{"outline":"eaf6","filled":"f7f7"}},"mood-search":{"name":"mood-search","category":"Mood","tags":["emotion","feeling","happy","face","find","explore"],"variants":{"outline":"f7ba"}},"mood-share":{"name":"mood-share","category":"Mood","tags":[],"variants":{"outline":"fa06"}},"mood-sick":{"name":"mood-sick","category":"Mood","tags":["face","emoji","emotion","suffering","unhealthy"],"variants":{"outline":"f2e5"}},"mood-silence":{"name":"mood-silence","category":"Mood","tags":["face","emoji","emotion","quiet"],"variants":{"outline":"f2e6"}},"mood-sing":{"name":"mood-sing","category":"Mood","tags":["face","emoji","emotion","song","melody"],"variants":{"outline":"f2c7"}},"mood-smile-beam":{"name":"mood-smile-beam","category":"Mood","tags":["face","emoji","emotion","happy","smiley"],"variants":{"outline":"f2e7"}},"mood-smile-dizzy":{"name":"mood-smile-dizzy","category":"Mood","tags":["face","emoji","emotion","happy","smiley"],"variants":{"outline":"f2e8"}},"mood-smile":{"name":"mood-smile","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eaf7","filled":"f7f8"}},"mood-surprised":{"name":"mood-surprised","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"ec04"}},"mood-tongue-wink-2":{"name":"mood-tongue-wink-2","category":"Mood","tags":["face","emoji","emotion","happy","joke"],"variants":{"outline":"f2e9"}},"mood-tongue-wink":{"name":"mood-tongue-wink","category":"Mood","tags":["face","emoji","emotion","happy","joke"],"variants":{"outline":"f2ea"}},"mood-tongue":{"name":"mood-tongue","category":"Mood","tags":["face","emoji","emotion"],"variants":{"outline":"eb95"}},"mood-unamused":{"name":"mood-unamused","category":"Mood","tags":["face","emoji","emotion","unfunny","unhappy","unsmilling"],"variants":{"outline":"f2eb"}},"mood-up":{"name":"mood-up","category":"Mood","tags":["emotion","feeling","happy","face","top"],"variants":{"outline":"f7bb"}},"mood-wink-2":{"name":"mood-wink-2","category":"Mood","tags":["face","emoji","emotion","smile","funny","happy"],"variants":{"outline":"f2ec"}},"mood-wink":{"name":"mood-wink","category":"Mood","tags":["face","emoji","emotion","smile","funny","happy"],"variants":{"outline":"f2ed"}},"mood-wrrr":{"name":"mood-wrrr","category":"Mood","tags":["face","emoji","emotion","disgusted"],"variants":{"outline":"f2ee","filled":"ff08"}},"mood-x":{"name":"mood-x","category":"Mood","tags":["emotion","feeling","happy","face","delete","close"],"variants":{"outline":"f7bc"}},"mood-xd":{"name":"mood-xd","category":"Mood","tags":["face","emoji","emotion","funny","happy","smiley","joke"],"variants":{"outline":"f2ef"}},"moon-2":{"name":"moon-2","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"ece6"}},"moon-off":{"name":"moon-off","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"f162"}},"moon-stars":{"name":"moon-stars","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"ece7"}},"moon":{"name":"moon","category":"Weather","tags":["night","dark mode"],"variants":{"outline":"eaf8","filled":"f684"}},"moped":{"name":"moped","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ecbc"}},"motorbike":{"name":"motorbike","category":"Vehicles","tags":["engine","ride","trip","journey","road","street","vehicle","motorcycle"],"variants":{"outline":"eeb6"}},"mountain-off":{"name":"mountain-off","category":"Nature","tags":["alps","camping","mount everest","trekking"],"variants":{"outline":"f411"}},"mountain":{"name":"mountain","category":"Nature","tags":["alps","camping","mount everest","trekking"],"variants":{"outline":"ef97"}},"mouse-2":{"name":"mouse-2","category":"Devices","tags":["computer","hardware","pointer","cursor","device"],"variants":{"outline":"f1d7"}},"mouse-off":{"name":"mouse-off","category":"Devices","tags":["pointer","cursor","device"],"variants":{"outline":"f163"}},"mouse":{"name":"mouse","category":"Devices","tags":["pointer","cursor","device"],"variants":{"outline":"eaf9","filled":"fb2f"}},"moustache":{"name":"moustache","category":"","tags":["man","face","beard","male"],"variants":{"outline":"f4c9"}},"movie-off":{"name":"movie-off","category":"Media","tags":["film","video","cinema"],"variants":{"outline":"f164"}},"movie":{"name":"movie","category":"Media","tags":["film","video","cinema"],"variants":{"outline":"eafa"}},"mug-off":{"name":"mug-off","category":"Food","tags":["tea","coffee","drink","container","jug"],"variants":{"outline":"f165"}},"mug":{"name":"mug","category":"Food","tags":["tea","coffee","drink","container","jug"],"variants":{"outline":"eafb"}},"multiplier-0-5x":{"name":"multiplier-0-5x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef41"}},"multiplier-1-5x":{"name":"multiplier-1-5x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef42"}},"multiplier-1x":{"name":"multiplier-1x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef43"}},"multiplier-2x":{"name":"multiplier-2x","category":"Math","tags":["count","calculate","math"],"variants":{"outline":"ef44"}},"mushroom-off":{"name":"mushroom-off","category":"Food","tags":["food","vegetable","cooking","fungus","mushrooming"],"variants":{"outline":"f412"}},"mushroom":{"name":"mushroom","category":"Food","tags":["food","vegetable","cooking","fungus","mushrooming"],"variants":{"outline":"ef14","filled":"f7f9"}},"music-bolt":{"name":"music-bolt","category":"","tags":[],"variants":{"outline":"fbd5"}},"music-cancel":{"name":"music-cancel","category":"","tags":[],"variants":{"outline":"fbd6"}},"music-check":{"name":"music-check","category":"","tags":[],"variants":{"outline":"fbd7"}},"music-code":{"name":"music-code","category":"","tags":[],"variants":{"outline":"fbd8"}},"music-cog":{"name":"music-cog","category":"","tags":[],"variants":{"outline":"fbd9"}},"music-discount":{"name":"music-discount","category":"","tags":[],"variants":{"outline":"fbda"}},"music-dollar":{"name":"music-dollar","category":"","tags":[],"variants":{"outline":"fbdb"}},"music-down":{"name":"music-down","category":"","tags":[],"variants":{"outline":"fbdc"}},"music-exclamation":{"name":"music-exclamation","category":"","tags":[],"variants":{"outline":"fbdd"}},"music-heart":{"name":"music-heart","category":"","tags":[],"variants":{"outline":"fbde"}},"music-minus":{"name":"music-minus","category":"","tags":[],"variants":{"outline":"fbdf"}},"music-off":{"name":"music-off","category":"Media","tags":["sound","mp3","album","speakers","melody"],"variants":{"outline":"f166"}},"music-pause":{"name":"music-pause","category":"","tags":[],"variants":{"outline":"fbe0"}},"music-pin":{"name":"music-pin","category":"","tags":[],"variants":{"outline":"fbe1"}},"music-plus":{"name":"music-plus","category":"","tags":[],"variants":{"outline":"fbe2"}},"music-question":{"name":"music-question","category":"","tags":[],"variants":{"outline":"fbe3"}},"music-search":{"name":"music-search","category":"","tags":[],"variants":{"outline":"fbe4"}},"music-share":{"name":"music-share","category":"","tags":[],"variants":{"outline":"fbe5"}},"music-star":{"name":"music-star","category":"","tags":[],"variants":{"outline":"fbe6"}},"music-up":{"name":"music-up","category":"","tags":[],"variants":{"outline":"fbe7"}},"music-x":{"name":"music-x","category":"","tags":[],"variants":{"outline":"fbe8"}},"music":{"name":"music","category":"Media","tags":["sound","mp3","album","speakers","melody"],"variants":{"outline":"eafc"}},"navigation-bolt":{"name":"navigation-bolt","category":"","tags":[],"variants":{"outline":"fbe9"}},"navigation-cancel":{"name":"navigation-cancel","category":"","tags":[],"variants":{"outline":"fbea"}},"navigation-check":{"name":"navigation-check","category":"","tags":[],"variants":{"outline":"fbeb"}},"navigation-code":{"name":"navigation-code","category":"","tags":[],"variants":{"outline":"fbec"}},"navigation-cog":{"name":"navigation-cog","category":"","tags":[],"variants":{"outline":"fbed"}},"navigation-discount":{"name":"navigation-discount","category":"","tags":[],"variants":{"outline":"fbee"}},"navigation-dollar":{"name":"navigation-dollar","category":"","tags":[],"variants":{"outline":"fbef"}},"navigation-down":{"name":"navigation-down","category":"","tags":[],"variants":{"outline":"fbf0"}},"navigation-east":{"name":"navigation-east","category":"Map","tags":[],"variants":{"outline":"fcba"}},"navigation-exclamation":{"name":"navigation-exclamation","category":"","tags":[],"variants":{"outline":"fbf1"}},"navigation-heart":{"name":"navigation-heart","category":"","tags":[],"variants":{"outline":"fbf2"}},"navigation-minus":{"name":"navigation-minus","category":"","tags":[],"variants":{"outline":"fbf3"}},"navigation-north":{"name":"navigation-north","category":"Map","tags":[],"variants":{"outline":"fcbb"}},"navigation-off":{"name":"navigation-off","category":"Map","tags":["map","location","direction","pin","gps"],"variants":{"outline":"f413"}},"navigation-pause":{"name":"navigation-pause","category":"","tags":[],"variants":{"outline":"fbf4"}},"navigation-pin":{"name":"navigation-pin","category":"","tags":[],"variants":{"outline":"fbf5"}},"navigation-plus":{"name":"navigation-plus","category":"","tags":[],"variants":{"outline":"fbf6"}},"navigation-question":{"name":"navigation-question","category":"","tags":[],"variants":{"outline":"fbf7"}},"navigation-search":{"name":"navigation-search","category":"","tags":[],"variants":{"outline":"fbf8"}},"navigation-share":{"name":"navigation-share","category":"","tags":[],"variants":{"outline":"fbf9"}},"navigation-south":{"name":"navigation-south","category":"Map","tags":[],"variants":{"outline":"fcbc"}},"navigation-star":{"name":"navigation-star","category":"","tags":[],"variants":{"outline":"fbfa"}},"navigation-top":{"name":"navigation-top","category":"Map","tags":[],"variants":{"outline":"faec"}},"navigation-up":{"name":"navigation-up","category":"","tags":[],"variants":{"outline":"fbfb"}},"navigation-west":{"name":"navigation-west","category":"Map","tags":[],"variants":{"outline":"fcbd"}},"navigation-x":{"name":"navigation-x","category":"","tags":[],"variants":{"outline":"fbfc"}},"navigation":{"name":"navigation","category":"Map","tags":["map","location","direction","pin","gps"],"variants":{"outline":"f2c8","filled":"f685"}},"needle-thread":{"name":"needle-thread","category":"","tags":["sewing","tailoring","craft","tailor"],"variants":{"outline":"f507"}},"needle":{"name":"needle","category":"","tags":["sewing","tailoring","craft","tailor"],"variants":{"outline":"f508"}},"network-off":{"name":"network-off","category":"Computers","tags":["connection","internet","communication","connect","web","signal"],"variants":{"outline":"f414"}},"network":{"name":"network","category":"Computers","tags":["connection","internet","communication","connect","web","signal"],"variants":{"outline":"f09f"}},"new-section":{"name":"new-section","category":"","tags":["add","element","component","layout","page"],"variants":{"outline":"ebc1"}},"news-off":{"name":"news-off","category":"Document","tags":["newspaper","article"],"variants":{"outline":"f167"}},"news":{"name":"news","category":"Document","tags":["newspaper","article"],"variants":{"outline":"eafd"}},"nfc-off":{"name":"nfc-off","category":"Devices","tags":["payment","nfc","cash","chip","shopping","cashless","pass","contactless"],"variants":{"outline":"f168"}},"nfc":{"name":"nfc","category":"Devices","tags":["payment","nfc","cash","chip","shopping","cashless","pass","contactless"],"variants":{"outline":"eeb7"}},"no-copyright":{"name":"no-copyright","category":"System","tags":["cancel","copy","restriction"],"variants":{"outline":"efb9"}},"no-creative-commons":{"name":"no-creative-commons","category":"System","tags":["license","cancel","copyrights"],"variants":{"outline":"efba"}},"no-derivatives":{"name":"no-derivatives","category":"System","tags":["law","license"],"variants":{"outline":"efbb"}},"north-star":{"name":"north-star","category":"Map","tags":["compas","location","point","christmas","direction"],"variants":{"outline":"f014"}},"note-off":{"name":"note-off","category":"Document","tags":["checkbox","brief","record","write","message"],"variants":{"outline":"f169"}},"note":{"name":"note","category":"Document","tags":["checkbox","brief","record","write","message"],"variants":{"outline":"eb6d"}},"notebook-off":{"name":"notebook-off","category":"Document","tags":["study","learn","diary","write","journal","page","paper","jot down"],"variants":{"outline":"f415"}},"notebook":{"name":"notebook","category":"Document","tags":["study","learn","diary","write","journal","page","paper","jot down"],"variants":{"outline":"eb96"}},"notes-off":{"name":"notes-off","category":"Document","tags":["notetaking","journal","draft","idea","to-do list"],"variants":{"outline":"f16a"}},"notes":{"name":"notes","category":"Document","tags":["notetaking","journal","draft","idea","to-do list"],"variants":{"outline":"eb6e"}},"notification-off":{"name":"notification-off","category":"System","tags":["bell","alarm","reminder","important"],"variants":{"outline":"f16b"}},"notification":{"name":"notification","category":"System","tags":["bell","alarm","reminder","important"],"variants":{"outline":"eafe"}},"number-0-small":{"name":"number-0-small","category":"Numbers","tags":["zero","nil",null,"none","naught","nought","nothing","void","zilch","zip"],"variants":{"outline":"fce1"}},"number-0":{"name":"number-0","category":"Numbers","tags":["zero","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf0"}},"number-1-small":{"name":"number-1-small","category":"Numbers","tags":["one","singular","first","unit","solitary","individual","alone","unique","sole","individualistic"],"variants":{"outline":"fce2"}},"number-1":{"name":"number-1","category":"Numbers","tags":["one","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf1"}},"number-10-small":{"name":"number-10-small","category":"Numbers","tags":["ten","decade","decuple","decad","tenfold","decenary","dec","decuplet","tenth","deca"],"variants":{"outline":"fce3"}},"number-11-small":{"name":"number-11-small","category":"Numbers","tags":["eleven","undecade","eleventh","undecuple","undecad","elevenfold","undecenary","undec","undecuplet","11th"],"variants":{"outline":"fce4"}},"number-12-small":{"name":"number-12-small","category":"Numbers","tags":["twelve","duodecade","twelfth","duodecuple","duodecad","twelvefold","duodenary","duodec","duodecuplet","12th"],"variants":{"outline":"fce5"}},"number-123":{"name":"number-123","category":"Numbers","tags":["numbers","digit","one","two","three"],"variants":{"outline":"f554"}},"number-13-small":{"name":"number-13-small","category":"Numbers","tags":["thirteen","thirteenth","tredecade","tredecuple","tredecad","thirteenfold","tredecenary","tredec","tredecuplet","13th"],"variants":{"outline":"fce6"}},"number-14-small":{"name":"number-14-small","category":"Numbers","tags":["fourteen","fourteenth","quattuordecade","quattuordecuple","quattuordecad","fourteenfold","quattuordecenary","quattuordec","quattuordecuplet","14th"],"variants":{"outline":"fce7"}},"number-15-small":{"name":"number-15-small","category":"Numbers","tags":["fifteen","fifteenth","quindecade","quindecuple","quindecad","fifteenfold","quindecenary","quindec","quindecuplet","15th"],"variants":{"outline":"fce8"}},"number-16-small":{"name":"number-16-small","category":"Numbers","tags":["sixteen","sixteenth","sexdecade","sexdecuple","sexdecad","sixteenfold","sexdecenary","sexdec","sexdecuplet","16th"],"variants":{"outline":"fce9"}},"number-17-small":{"name":"number-17-small","category":"Numbers","tags":["seventeen","seventeenth","septendecade","septendecuple","septendecad","seventeenfold","septendecenary","septendec","septendecuplet","17th"],"variants":{"outline":"fcea"}},"number-18-small":{"name":"number-18-small","category":"Numbers","tags":["eighteen","eighteenth","octodecade","octodecuple","octodecad","eighteenfold","octodecenary","octodec","octodecuplet","18th"],"variants":{"outline":"fceb"}},"number-19-small":{"name":"number-19-small","category":"Numbers","tags":["nineteen","nineteenth","novendecade","novendecuple","novendecad","nineteenfold","novendecenary","novendec","novendecuplet","19th"],"variants":{"outline":"fcec"}},"number-2-small":{"name":"number-2-small","category":"Numbers","tags":["two","pair","duo","double","twofold","dual","second","couple","dyad","binary"],"variants":{"outline":"fced"}},"number-2":{"name":"number-2","category":"Numbers","tags":["two","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf2"}},"number-20-small":{"name":"number-20-small","category":"Numbers","tags":["twenty","twentieth","vigintidecade","vigintidecuple","vigintidecad","twentyfold","vigintidecenary","vigintidec","vigintidecuplet","20th"],"variants":{"outline":"fcee"}},"number-21-small":{"name":"number-21-small","category":"Numbers","tags":["twenty-one","21st","twenty-first","viginti-uno","viginti-first","twenty","and","one","plus","21th"],"variants":{"outline":"fcef"}},"number-22-small":{"name":"number-22-small","category":"Numbers","tags":["twenty-two","22nd","twenty-second","viginti-duo","viginti-second","twenty","and","two","plus","2th2"],"variants":{"outline":"fcf0"}},"number-23-small":{"name":"number-23-small","category":"Numbers","tags":["twenty-three","23rd","twenty-third","viginti-tertio","viginti-third","twenty","and","three","plus",23],"variants":{"outline":"fcf1"}},"number-24-small":{"name":"number-24-small","category":"Numbers","tags":["twenty-four","24th","twenty-fourth","viginti-quarto","viginti-fourth","twenty","and","four","plus",24],"variants":{"outline":"fcf2"}},"number-25-small":{"name":"number-25-small","category":"Numbers","tags":["twenty-five","25th","twenty-fifth","viginti-quinto","viginti-fifth","twenty","and","five","plus",25],"variants":{"outline":"fcf3"}},"number-26-small":{"name":"number-26-small","category":"Numbers","tags":["twenty-six","26th","twenty-sixth","viginti-sexto","viginti-sixth","twenty","and","six","plus",26],"variants":{"outline":"fcf4"}},"number-27-small":{"name":"number-27-small","category":"Numbers","tags":["twenty-seven","27th","twenty-seventh","viginti-septimo","viginti-seventh","twenty","and","seven","plus",27],"variants":{"outline":"fcf5"}},"number-28-small":{"name":"number-28-small","category":"Numbers","tags":["twenty-eight","28th","twenty-eighth","viginti-octavo","viginti-eighth","twenty","and","eight","plus",28],"variants":{"outline":"fcf6"}},"number-29-small":{"name":"number-29-small","category":"Numbers","tags":["twenty-nine","29th","twenty-ninth","viginti-nono","viginti-ninth","twenty","and","nine","plus",29],"variants":{"outline":"fcf7"}},"number-3-small":{"name":"number-3-small","category":"Numbers","tags":["three","trio","triplet","third","treble","triad","tertiary","threesome","triple","triangular"],"variants":{"outline":"fcf8"}},"number-3":{"name":"number-3","category":"Numbers","tags":["three","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf3"}},"number-4-small":{"name":"number-4-small","category":"Numbers","tags":["four","quartet","quadruple","tetrad","fourfold","quaternary","quadrant","quartile","quadruplet","quad"],"variants":{"outline":"fcf9"}},"number-4":{"name":"number-4","category":"Numbers","tags":["four","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf4"}},"number-5-small":{"name":"number-5-small","category":"Numbers","tags":["five","quintet","quintuple","pentad","fivefold","quinary","quint","quintuplet","fifth","penta"],"variants":{"outline":"fcfa"}},"number-5":{"name":"number-5","category":"Numbers","tags":["five","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf5"}},"number-6-small":{"name":"number-6-small","category":"Numbers","tags":["six","sextet","sextuple","hexad","sixfold","senary","sextuplet","hexagonal","sixth","hex"],"variants":{"outline":"fcfb"}},"number-6":{"name":"number-6","category":"Numbers","tags":["six","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf6"}},"number-7-small":{"name":"number-7-small","category":"Numbers","tags":["seven","septet","septuple","heptad","sevenfold","septenary","sept","septuplet","seventh","hepta"],"variants":{"outline":"fcfc"}},"number-7":{"name":"number-7","category":"Numbers","tags":["seven","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf7"}},"number-8-small":{"name":"number-8-small","category":"Numbers","tags":["eight","octet","octuple","octad","eightfold","octenary","oct","octuplet","eighth","octa"],"variants":{"outline":"fcfd"}},"number-8":{"name":"number-8","category":"Numbers","tags":["eight","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf8"}},"number-9-small":{"name":"number-9-small","category":"Numbers","tags":["nine","nonet","nonuple","ennead","ninefold","novenary","non","nonuplet","ninth","ennea"],"variants":{"outline":"fcfe"}},"number-9":{"name":"number-9","category":"Numbers","tags":["nine","maths","value","quantity","calculate","calculation","total","amount","sum","order","digit"],"variants":{"outline":"edf9"}},"number":{"name":"number","category":"Numbers","tags":["one","two","three","four","five","six","seven","eight","nine","ten","math","counting"],"variants":{"outline":"f1fe"}},"numbers":{"name":"numbers","category":"Numbers","tags":["math","counting","calculator","calculate","one","two","three","four","five"],"variants":{"outline":"f015"}},"nurse":{"name":"nurse","category":"Health","tags":["hospital","doctor","medical","woman","emergency","medicine"],"variants":{"outline":"ef65"}},"nut":{"name":"nut","category":"","tags":[],"variants":{"outline":"fc61"}},"object-scan":{"name":"object-scan","category":"","tags":[],"variants":{"outline":"fef1"}},"octagon-minus-2":{"name":"octagon-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc91"}},"octagon-minus":{"name":"octagon-minus","category":"Shapes","tags":[],"variants":{"outline":"fc92"}},"octagon-off":{"name":"octagon-off","category":"Shapes","tags":["shape","geometric","math","2d","building","government"],"variants":{"outline":"eeb8"}},"octagon-plus-2":{"name":"octagon-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc93"}},"octagon-plus":{"name":"octagon-plus","category":"Shapes","tags":[],"variants":{"outline":"fc94"}},"octagon":{"name":"octagon","category":"Shapes","tags":["shape","geometric","math","2d","building","government"],"variants":{"outline":"ecbd","filled":"f686"}},"octahedron-off":{"name":"octahedron-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faac"}},"octahedron-plus":{"name":"octahedron-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faad"}},"octahedron":{"name":"octahedron","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faae"}},"old":{"name":"old","category":"Health","tags":["senior","person","elderly","age"],"variants":{"outline":"eeb9"}},"olympics-off":{"name":"olympics-off","category":"Sport","tags":["game","play","sport","sportsman","champion","win","medal","sporting","event","competition","athlete"],"variants":{"outline":"f416"}},"olympics":{"name":"olympics","category":"Sport","tags":["game","play","sport","sportsman","champion","win","medal","sporting","event","competition","athlete"],"variants":{"outline":"eeba"}},"om":{"name":"om","category":"Symbols","tags":["hinduism","religion","hindu","symbol"],"variants":{"outline":"f58d"}},"omega":{"name":"omega","category":"Math","tags":["alphabet","greek","symbol","final","last"],"variants":{"outline":"eb97"}},"outbound":{"name":"outbound","category":"","tags":["call","exit","telephone","out"],"variants":{"outline":"f249"}},"outlet":{"name":"outlet","category":"","tags":["socket","electricity","electrical","plug in","device"],"variants":{"outline":"ebd7"}},"oval-vertical":{"name":"oval-vertical","category":"Shapes","tags":["shape","graphic","circle"],"variants":{"outline":"f02d","filled":"f688"}},"oval":{"name":"oval","category":"Shapes","tags":["shape","graphic","egg","circle","zero"],"variants":{"outline":"f02e","filled":"f687"}},"overline":{"name":"overline","category":"Text","tags":["above","overbar","overscore","horizontal"],"variants":{"outline":"eebb"}},"package-export":{"name":"package-export","category":"","tags":["npm","box","container","delivery","logistic"],"variants":{"outline":"f07a"}},"package-import":{"name":"package-import","category":"","tags":["npm","box","container","delivery","shipping","courier"],"variants":{"outline":"f07b"}},"package-off":{"name":"package-off","category":"E-commerce","tags":["npm","box","container"],"variants":{"outline":"f16c"}},"package":{"name":"package","category":"E-commerce","tags":["npm","box","container"],"variants":{"outline":"eaff"}},"packages":{"name":"packages","category":"","tags":["delivery","boxes","storage"],"variants":{"outline":"f2c9"}},"pacman":{"name":"pacman","category":"","tags":["game","play","online","maze","eat","dot","ghost"],"variants":{"outline":"eebc"}},"page-break":{"name":"page-break","category":"Document","tags":["summary","feature","element","css"],"variants":{"outline":"ec81"}},"paint-off":{"name":"paint-off","category":"Design","tags":["brush","renovation","refurbishment","color","wall"],"variants":{"outline":"f16d"}},"paint":{"name":"paint","category":"Design","tags":["brush","renovation","refurbishment","color","wall"],"variants":{"outline":"eb00","filled":"f75f"}},"palette-off":{"name":"palette-off","category":"Design","tags":["color","paint","painter","picture","board","artist"],"variants":{"outline":"f16e"}},"palette":{"name":"palette","category":"Design","tags":["color","paint","painter","picture","board","artist"],"variants":{"outline":"eb01"}},"panorama-horizontal-off":{"name":"panorama-horizontal-off","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"f417"}},"panorama-horizontal":{"name":"panorama-horizontal","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"ed33","filled":"fecc"}},"panorama-vertical-off":{"name":"panorama-vertical-off","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"f418"}},"panorama-vertical":{"name":"panorama-vertical","category":"Photography","tags":["photo","picture","panoramic"],"variants":{"outline":"ed34","filled":"fecb"}},"paper-bag-off":{"name":"paper-bag-off","category":"Food","tags":["recycle","shopping","ecology","food"],"variants":{"outline":"f16f"}},"paper-bag":{"name":"paper-bag","category":"Food","tags":["recycle","shopping","ecology","food"],"variants":{"outline":"f02f"}},"paperclip":{"name":"paperclip","category":"","tags":["attachment","annex","hold"],"variants":{"outline":"eb02"}},"parachute-off":{"name":"parachute-off","category":"Vehicles","tags":["plane","aircraft","land","float","pilot"],"variants":{"outline":"f170"}},"parachute":{"name":"parachute","category":"Vehicles","tags":["plane","aircraft","land","float","pilot"],"variants":{"outline":"ed7c"}},"parentheses-off":{"name":"parentheses-off","category":"Math","tags":["brackets","aside","punctuation","mark","insert"],"variants":{"outline":"f171"}},"parentheses":{"name":"parentheses","category":"Math","tags":["brackets","aside","punctuation","mark","insert"],"variants":{"outline":"ebd8"}},"parking-circle":{"name":"parking-circle","category":"","tags":["parking","parking-lot","circle-parking","vehicle-parking","parking-zone","parking-area","parking-circle","car-park","round-parking","circle-lot"],"variants":{"outline":"fd5a","filled":"feca"}},"parking-off":{"name":"parking-off","category":"Map","tags":["sign","car","vehicle","space"],"variants":{"outline":"f172"}},"parking":{"name":"parking","category":"Map","tags":["sign","car","vehicle","space"],"variants":{"outline":"eb03"}},"password-fingerprint":{"name":"password-fingerprint","category":"System","tags":[],"variants":{"outline":"fc7b"}},"password-mobile-phone":{"name":"password-mobile-phone","category":"System","tags":[],"variants":{"outline":"fc7c"}},"password-user":{"name":"password-user","category":"System","tags":[],"variants":{"outline":"fc7d"}},"password":{"name":"password","category":"System","tags":["lock","secure","privacy","locked","login"],"variants":{"outline":"f4ca"}},"paw-off":{"name":"paw-off","category":"","tags":["animal","dog","cat","foot","pets"],"variants":{"outline":"f419"}},"paw":{"name":"paw","category":"","tags":["animal","dog","cat","foot","pets"],"variants":{"outline":"eff9","filled":"f689"}},"paywall":{"name":"paywall","category":"","tags":[],"variants":{"outline":"fd7e"}},"pdf":{"name":"pdf","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7ac"}},"peace":{"name":"peace","category":"Symbols","tags":["love","hippy","minority","opinion","equilibrium"],"variants":{"outline":"ecbe"}},"pencil-bolt":{"name":"pencil-bolt","category":"","tags":[],"variants":{"outline":"fbfd"}},"pencil-cancel":{"name":"pencil-cancel","category":"","tags":[],"variants":{"outline":"fbfe"}},"pencil-check":{"name":"pencil-check","category":"","tags":[],"variants":{"outline":"fbff"}},"pencil-code":{"name":"pencil-code","category":"","tags":[],"variants":{"outline":"fc00"}},"pencil-cog":{"name":"pencil-cog","category":"","tags":[],"variants":{"outline":"fc01"}},"pencil-discount":{"name":"pencil-discount","category":"","tags":[],"variants":{"outline":"fc02"}},"pencil-dollar":{"name":"pencil-dollar","category":"","tags":[],"variants":{"outline":"fc03"}},"pencil-down":{"name":"pencil-down","category":"","tags":[],"variants":{"outline":"fc04"}},"pencil-exclamation":{"name":"pencil-exclamation","category":"","tags":[],"variants":{"outline":"fc05"}},"pencil-heart":{"name":"pencil-heart","category":"","tags":[],"variants":{"outline":"fc06"}},"pencil-minus":{"name":"pencil-minus","category":"Design","tags":["dash","edit","marker","delete","remove"],"variants":{"outline":"f1eb"}},"pencil-off":{"name":"pencil-off","category":"Design","tags":["write","draft","edit","note"],"variants":{"outline":"f173"}},"pencil-pause":{"name":"pencil-pause","category":"","tags":[],"variants":{"outline":"fc07"}},"pencil-pin":{"name":"pencil-pin","category":"","tags":[],"variants":{"outline":"fc08"}},"pencil-plus":{"name":"pencil-plus","category":"Design","tags":["add","edit","write","create","more"],"variants":{"outline":"f1ec"}},"pencil-question":{"name":"pencil-question","category":"","tags":[],"variants":{"outline":"fc09"}},"pencil-search":{"name":"pencil-search","category":"","tags":[],"variants":{"outline":"fc0a"}},"pencil-share":{"name":"pencil-share","category":"","tags":[],"variants":{"outline":"fc0b"}},"pencil-star":{"name":"pencil-star","category":"","tags":[],"variants":{"outline":"fc0c"}},"pencil-up":{"name":"pencil-up","category":"","tags":[],"variants":{"outline":"fc0d"}},"pencil-x":{"name":"pencil-x","category":"","tags":[],"variants":{"outline":"fc0e"}},"pencil":{"name":"pencil","category":"Design","tags":["write","draft","edit","note"],"variants":{"outline":"eb04"}},"pennant-2":{"name":"pennant-2","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"f06a","filled":"f68a"}},"pennant-off":{"name":"pennant-off","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"f174"}},"pennant":{"name":"pennant","category":"Map","tags":["flag","ship","sports","championship","mark","spot","winner"],"variants":{"outline":"ed7d","filled":"f68b"}},"pentagon-minus":{"name":"pentagon-minus","category":"","tags":[],"variants":{"outline":"feb3"}},"pentagon-number-0":{"name":"pentagon-number-0","category":"Numbers","tags":[],"variants":{"outline":"fc7e"}},"pentagon-number-1":{"name":"pentagon-number-1","category":"Numbers","tags":[],"variants":{"outline":"fc7f"}},"pentagon-number-2":{"name":"pentagon-number-2","category":"Numbers","tags":[],"variants":{"outline":"fc80"}},"pentagon-number-3":{"name":"pentagon-number-3","category":"Numbers","tags":[],"variants":{"outline":"fc81"}},"pentagon-number-4":{"name":"pentagon-number-4","category":"Numbers","tags":[],"variants":{"outline":"fc82"}},"pentagon-number-5":{"name":"pentagon-number-5","category":"Numbers","tags":[],"variants":{"outline":"fc83"}},"pentagon-number-6":{"name":"pentagon-number-6","category":"Numbers","tags":[],"variants":{"outline":"fc84"}},"pentagon-number-7":{"name":"pentagon-number-7","category":"Numbers","tags":[],"variants":{"outline":"fc85"}},"pentagon-number-8":{"name":"pentagon-number-8","category":"Numbers","tags":[],"variants":{"outline":"fc86"}},"pentagon-number-9":{"name":"pentagon-number-9","category":"Numbers","tags":[],"variants":{"outline":"fc87"}},"pentagon-off":{"name":"pentagon-off","category":"Shapes","tags":["shape","figure","math","graphic","geometry","form"],"variants":{"outline":"f41a"}},"pentagon-plus":{"name":"pentagon-plus","category":"","tags":[],"variants":{"outline":"fc49"}},"pentagon-x":{"name":"pentagon-x","category":"","tags":[],"variants":{"outline":"fc88"}},"pentagon":{"name":"pentagon","category":"Shapes","tags":["shape","figure","math","graphic","geometry","form"],"variants":{"outline":"efe3","filled":"f68c"}},"pentagram":{"name":"pentagram","category":"","tags":["evil","scary","satanism","halloween"],"variants":{"outline":"f586"}},"pepper-off":{"name":"pepper-off","category":"Food","tags":["food","spice","chili","jalape\u00f1o","hot","spicy"],"variants":{"outline":"f175"}},"pepper":{"name":"pepper","category":"Food","tags":["food","spice","chili","jalape\u00f1o","hot","spicy"],"variants":{"outline":"ef15"}},"percentage-0":{"name":"percentage-0","category":"","tags":[],"variants":{"outline":"fee5"}},"percentage-10":{"name":"percentage-10","category":"","tags":[],"variants":{"outline":"fee4"}},"percentage-100":{"name":"percentage-100","category":"","tags":[],"variants":{"outline":"fee3"}},"percentage-20":{"name":"percentage-20","category":"","tags":[],"variants":{"outline":"fee2"}},"percentage-25":{"name":"percentage-25","category":"","tags":[],"variants":{"outline":"fee1"}},"percentage-30":{"name":"percentage-30","category":"","tags":[],"variants":{"outline":"fee0"}},"percentage-33":{"name":"percentage-33","category":"","tags":[],"variants":{"outline":"fedf"}},"percentage-40":{"name":"percentage-40","category":"","tags":[],"variants":{"outline":"fede"}},"percentage-50":{"name":"percentage-50","category":"","tags":[],"variants":{"outline":"fedd"}},"percentage-60":{"name":"percentage-60","category":"","tags":[],"variants":{"outline":"fedc"}},"percentage-66":{"name":"percentage-66","category":"","tags":[],"variants":{"outline":"fedb"}},"percentage-70":{"name":"percentage-70","category":"","tags":[],"variants":{"outline":"feda"}},"percentage-75":{"name":"percentage-75","category":"","tags":[],"variants":{"outline":"fed9"}},"percentage-80":{"name":"percentage-80","category":"","tags":[],"variants":{"outline":"fed8"}},"percentage-90":{"name":"percentage-90","category":"","tags":[],"variants":{"outline":"fed7"}},"percentage":{"name":"percentage","category":"Math","tags":["sign","symbol","math","economics","cash","bank account","chart","graph","diagram","statistic"],"variants":{"outline":"ecf4"}},"perfume":{"name":"perfume","category":"","tags":["spray","smell","cosmetics","beauty","scent"],"variants":{"outline":"f509"}},"perspective-off":{"name":"perspective-off","category":"Shapes","tags":["3d","perspective","transform","reshape","scale"],"variants":{"outline":"f176"}},"perspective":{"name":"perspective","category":"Shapes","tags":["3d","perspective","transform","reshape","scale"],"variants":{"outline":"eebd"}},"phone-call":{"name":"phone-call","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"eb05"}},"phone-calling":{"name":"phone-calling","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec43"}},"phone-check":{"name":"phone-check","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec05"}},"phone-incoming":{"name":"phone-incoming","category":"Devices","tags":["call","answer","mobile","landline","conversation"],"variants":{"outline":"eb06"}},"phone-off":{"name":"phone-off","category":"Devices","tags":["call","mobile","conversation","landline","answer","number"],"variants":{"outline":"ecf5"}},"phone-outgoing":{"name":"phone-outgoing","category":"Devices","tags":["call","signal","mobile","landline","conversation"],"variants":{"outline":"eb07"}},"phone-pause":{"name":"phone-pause","category":"Devices","tags":["call","mute","mobile","landline","conversation"],"variants":{"outline":"eb08"}},"phone-plus":{"name":"phone-plus","category":"Devices","tags":["call","signal","mobile","landline","conversation"],"variants":{"outline":"ec06"}},"phone-x":{"name":"phone-x","category":"Devices","tags":["ring","mobile","conversation","answer","dial","landline"],"variants":{"outline":"ec07"}},"phone":{"name":"phone","category":"Devices","tags":["call","mobile","conversation","landline","answer","number"],"variants":{"outline":"eb09","filled":"fa49"}},"photo-ai":{"name":"photo-ai","category":"Media","tags":[],"variants":{"outline":"fa32"}},"photo-bitcoin":{"name":"photo-bitcoin","category":"","tags":[],"variants":{"outline":"ff31"}},"photo-bolt":{"name":"photo-bolt","category":"Media","tags":[],"variants":{"outline":"f990"}},"photo-cancel":{"name":"photo-cancel","category":"Media","tags":["delete","gallery","image"],"variants":{"outline":"f35d"}},"photo-check":{"name":"photo-check","category":"Media","tags":["success","complete","image","gallery"],"variants":{"outline":"f35e"}},"photo-circle-minus":{"name":"photo-circle-minus","category":"Media","tags":[],"variants":{"outline":"fc62"}},"photo-circle-plus":{"name":"photo-circle-plus","category":"Media","tags":[],"variants":{"outline":"fc63"}},"photo-circle":{"name":"photo-circle","category":"","tags":[],"variants":{"outline":"fc4a"}},"photo-code":{"name":"photo-code","category":"Media","tags":[],"variants":{"outline":"f991"}},"photo-cog":{"name":"photo-cog","category":"Media","tags":[],"variants":{"outline":"f992"}},"photo-dollar":{"name":"photo-dollar","category":"Media","tags":[],"variants":{"outline":"f993"}},"photo-down":{"name":"photo-down","category":"Media","tags":["image","gallery","download","arrow","south"],"variants":{"outline":"f35f"}},"photo-edit":{"name":"photo-edit","category":"Media","tags":["image","gallery","tool","create"],"variants":{"outline":"f360"}},"photo-exclamation":{"name":"photo-exclamation","category":"Media","tags":[],"variants":{"outline":"f994"}},"photo-heart":{"name":"photo-heart","category":"Media","tags":["image","gallery","love","romance","wedding"],"variants":{"outline":"f361"}},"photo-hexagon":{"name":"photo-hexagon","category":"","tags":[],"variants":{"outline":"fc4b"}},"photo-minus":{"name":"photo-minus","category":"Media","tags":["image","gallery","delete","remove"],"variants":{"outline":"f362"}},"photo-off":{"name":"photo-off","category":"Media","tags":["image","picture","landscape","camera"],"variants":{"outline":"ecf6"}},"photo-pause":{"name":"photo-pause","category":"Media","tags":[],"variants":{"outline":"f995"}},"photo-pentagon":{"name":"photo-pentagon","category":"","tags":[],"variants":{"outline":"fc4c"}},"photo-pin":{"name":"photo-pin","category":"Media","tags":[],"variants":{"outline":"f996"}},"photo-plus":{"name":"photo-plus","category":"Media","tags":["image","gallery","add","new"],"variants":{"outline":"f363"}},"photo-question":{"name":"photo-question","category":"Media","tags":[],"variants":{"outline":"f997"}},"photo-scan":{"name":"photo-scan","category":"System","tags":["image","capture","photograph","picture","snapshot","scan-image","photogrammetry","visual-scan","picture-analysis","photo-analysis"],"variants":{"outline":"fca8"}},"photo-search":{"name":"photo-search","category":"Media","tags":["image","gallery","find","zoom"],"variants":{"outline":"f364"}},"photo-sensor-2":{"name":"photo-sensor-2","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f796"}},"photo-sensor-3":{"name":"photo-sensor-3","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f797"}},"photo-sensor":{"name":"photo-sensor","category":"Photography","tags":["focus","lens","photograpy","camera"],"variants":{"outline":"f798"}},"photo-share":{"name":"photo-share","category":"Media","tags":[],"variants":{"outline":"f998"}},"photo-shield":{"name":"photo-shield","category":"Media","tags":["image","gallery","safety","secure"],"variants":{"outline":"f365"}},"photo-square-rounded":{"name":"photo-square-rounded","category":"","tags":[],"variants":{"outline":"fc4d"}},"photo-star":{"name":"photo-star","category":"Media","tags":["image","gallery","favourite","best"],"variants":{"outline":"f366"}},"photo-up":{"name":"photo-up","category":"Media","tags":["image","gallery","load","send","arrow","north"],"variants":{"outline":"f38b"}},"photo-video":{"name":"photo-video","category":"","tags":[],"variants":{"outline":"fc95"}},"photo-x":{"name":"photo-x","category":"Media","tags":["image","gallery","delete","remove"],"variants":{"outline":"f367"}},"photo":{"name":"photo","category":"Media","tags":["image","picture","landscape","camera"],"variants":{"outline":"eb0a","filled":"fa4a"}},"physotherapist":{"name":"physotherapist","category":"Health","tags":["physiotherapy","spa","therapy","treatment","pain","exercise"],"variants":{"outline":"eebe"}},"piano":{"name":"piano","category":"","tags":[],"variants":{"outline":"fad3"}},"pick":{"name":"pick","category":"","tags":[],"variants":{"outline":"fafc"}},"picnic-table":{"name":"picnic-table","category":"Map","tags":["outdoor","furniture","camping","seat","park","garden","nature","wood","food"],"variants":{"outline":"fed6"}},"picture-in-picture-off":{"name":"picture-in-picture-off","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed43"}},"picture-in-picture-on":{"name":"picture-in-picture-on","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed44"}},"picture-in-picture-top":{"name":"picture-in-picture-top","category":"Media","tags":["browser","shape","rectangle"],"variants":{"outline":"efe4","filled":"fec2"}},"picture-in-picture":{"name":"picture-in-picture","category":"Media","tags":["size","photo","elements","adjust","image"],"variants":{"outline":"ed35","filled":"fec1"}},"pig-money":{"name":"pig-money","category":"Animals","tags":["coin","finance","saving","bank"],"variants":{"outline":"f38c"}},"pig-off":{"name":"pig-off","category":"Animals","tags":["animal","farm","pork","mud","pink","piggy","bank"],"variants":{"outline":"f177"}},"pig":{"name":"pig","category":"Animals","tags":["animal","farm","pork","mud","pink","piggy","bank"],"variants":{"outline":"ef52"}},"pilcrow-left":{"name":"pilcrow-left","category":"","tags":[],"variants":{"outline":"fd7f"}},"pilcrow-right":{"name":"pilcrow-right","category":"","tags":[],"variants":{"outline":"fd80"}},"pilcrow":{"name":"pilcrow","category":"Text","tags":["paragraph","letter","text","symbol"],"variants":{"outline":"f5f6"}},"pill-off":{"name":"pill-off","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"f178"}},"pill":{"name":"pill","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"ec44","filled":"ff07"}},"pills":{"name":"pills","category":"Health","tags":["drug","medication","illness","sickness","doctor","prescription"],"variants":{"outline":"ef66"}},"pin-end":{"name":"pin-end","category":"","tags":["pin","location-pin","map-pin","marker","place-pin","destination-pin","end-pin","point","position-pin","mark-end"],"variants":{"outline":"fd5b"}},"pin-invoke":{"name":"pin-invoke","category":"","tags":["pin","location-pin","map-pin","marker","place-pin","invoke-pin","trigger-pin","point","position-pin","invoke-mark"],"variants":{"outline":"fd5c"}},"pin":{"name":"pin","category":"Map","tags":["thing","localization","maps","clip","place","location"],"variants":{"outline":"ec9c","filled":"f68d"}},"ping-pong":{"name":"ping-pong","category":"Sport","tags":["table","tennis","ball","sport","racket"],"variants":{"outline":"f38d"}},"pinned-off":{"name":"pinned-off","category":"Map","tags":["board","attach","nail","pointed","corkboard","favourite","noticeboard"],"variants":{"outline":"ed5f"}},"pinned":{"name":"pinned","category":"Map","tags":["board","attach","nail","pointed","corkboard","favourite","noticeboard"],"variants":{"outline":"ed60","filled":"f68e"}},"pizza-off":{"name":"pizza-off","category":"Food","tags":["food","cheese","italy","pepperoni","margherita","capricciosa","rucole"],"variants":{"outline":"f179"}},"pizza":{"name":"pizza","category":"Food","tags":["food","cheese","italy","pepperoni","margherita","capricciosa","rucole"],"variants":{"outline":"edbb"}},"placeholder":{"name":"placeholder","category":"","tags":["input","form"],"variants":{"outline":"f626"}},"plane-arrival":{"name":"plane-arrival","category":"Vehicles","tags":["travel","land","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb99"}},"plane-departure":{"name":"plane-departure","category":"Vehicles","tags":["travel","take off","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb9a"}},"plane-inflight":{"name":"plane-inflight","category":"Vehicles","tags":["travel","vacation","summer","sea","ocean","skies","clouds"],"variants":{"outline":"ef98"}},"plane-off":{"name":"plane-off","category":"Vehicles","tags":["travel","journey","trip","airport","baggage","luggage"],"variants":{"outline":"f17a"}},"plane-tilt":{"name":"plane-tilt","category":"Vehicles","tags":["up","higher","north","travel"],"variants":{"outline":"f1ed"}},"plane":{"name":"plane","category":"Vehicles","tags":["travel","journey","trip","airport","baggage","luggage"],"variants":{"outline":"eb6f"}},"planet-off":{"name":"planet-off","category":"Map","tags":["earth","uranus","universe","space","galaxy","orbit","atmosphere"],"variants":{"outline":"f17b"}},"planet":{"name":"planet","category":"Map","tags":["earth","uranus","universe","space","galaxy","orbit","atmosphere"],"variants":{"outline":"ec08"}},"plant-2-off":{"name":"plant-2-off","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"f17c"}},"plant-2":{"name":"plant-2","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"ed7e"}},"plant-off":{"name":"plant-off","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"f17d"}},"plant":{"name":"plant","category":"Nature","tags":["nature","green","flower","pot","tree","leaf","greenery","root","stem","seed"],"variants":{"outline":"ed50"}},"play-basketball":{"name":"play-basketball","category":"Sport","tags":[],"variants":{"outline":"fa66"}},"play-card-off":{"name":"play-card-off","category":"Games","tags":["game","magic","trick","casino","entertainment","spade","heart","diamond","club","playing"],"variants":{"outline":"f17e"}},"play-card":{"name":"play-card","category":"Games","tags":["game","magic","trick","casino","entertainment","spade","heart","diamond","club","playing"],"variants":{"outline":"eebf"}},"play-football":{"name":"play-football","category":"Sport","tags":[],"variants":{"outline":"fa67"}},"play-handball":{"name":"play-handball","category":"Sport","tags":[],"variants":{"outline":"fa68"}},"play-volleyball":{"name":"play-volleyball","category":"Sport","tags":[],"variants":{"outline":"fa69"}},"player-eject":{"name":"player-eject","category":"Media","tags":["media","multimedia","music","audio","control","figures"],"variants":{"outline":"efbc","filled":"f68f"}},"player-pause":{"name":"player-pause","category":"Media","tags":["video","film","music","player","stop"],"variants":{"outline":"ed45","filled":"f690"}},"player-play":{"name":"player-play","category":"Media","tags":["start","video","film","music","player"],"variants":{"outline":"ed46","filled":"f691"}},"player-record":{"name":"player-record","category":"Media","tags":["music","song","playlist","melody","device","voice","recorder","dictation","machine"],"variants":{"outline":"ed47","filled":"f692"}},"player-skip-back":{"name":"player-skip-back","category":"Media","tags":["button","player","video","film","music","cancel","rewind","reverse"],"variants":{"outline":"ed48","filled":"f693"}},"player-skip-forward":{"name":"player-skip-forward","category":"Media","tags":["button","player","video","film","music","omit"],"variants":{"outline":"ed49","filled":"f694"}},"player-stop":{"name":"player-stop","category":"Media","tags":["music","song","playlist","melody","device","voice","silence","break"],"variants":{"outline":"ed4a","filled":"f695"}},"player-track-next":{"name":"player-track-next","category":"Media","tags":["music","forward","play","song","playlist"],"variants":{"outline":"ed4b","filled":"f696"}},"player-track-prev":{"name":"player-track-prev","category":"Media","tags":["music","forward","play","song","playlist"],"variants":{"outline":"ed4c","filled":"f697"}},"playlist-add":{"name":"playlist-add","category":"","tags":["music","spotify","new","create","library","album"],"variants":{"outline":"f008"}},"playlist-off":{"name":"playlist-off","category":"Media","tags":["music","song","artist","spotify","track","play","record"],"variants":{"outline":"f17f"}},"playlist-x":{"name":"playlist-x","category":"Media","tags":["off","delete","remove"],"variants":{"outline":"f009"}},"playlist":{"name":"playlist","category":"Media","tags":["music","song","artist","spotify","track","play","record"],"variants":{"outline":"eec0"}},"playstation-circle":{"name":"playstation-circle","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2ad"}},"playstation-square":{"name":"playstation-square","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2ae"}},"playstation-triangle":{"name":"playstation-triangle","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2af"}},"playstation-x":{"name":"playstation-x","category":"Devices","tags":["controller","console","shape","joystick"],"variants":{"outline":"f2b0"}},"plug-connected-x":{"name":"plug-connected-x","category":"Devices","tags":["unfasten","unplug","disconnect"],"variants":{"outline":"f0a0"}},"plug-connected":{"name":"plug-connected","category":"Devices","tags":["power","electricy","cable","socket"],"variants":{"outline":"f00a"}},"plug-off":{"name":"plug-off","category":"Devices","tags":["electricity","charger","socket","connection"],"variants":{"outline":"f180"}},"plug-x":{"name":"plug-x","category":"Devices","tags":["electricity","charger","socket","connection","discharge","end charging","charge off"],"variants":{"outline":"f0a1"}},"plug":{"name":"plug","category":"Devices","tags":["electricity","charger","socket","connection"],"variants":{"outline":"ebd9"}},"plus-equal":{"name":"plus-equal","category":"Math","tags":["math","sign","adding","equation"],"variants":{"outline":"f7ad"}},"plus-minus":{"name":"plus-minus","category":"Math","tags":["math","sign","adding","subtraction"],"variants":{"outline":"f7ae"}},"plus":{"name":"plus","category":"Math","tags":["add","create","new","+"],"variants":{"outline":"eb0b"}},"png":{"name":"png","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3ad"}},"podium-off":{"name":"podium-off","category":"","tags":["speach","microphone","conference","politics","audience","presentation"],"variants":{"outline":"f41b"}},"podium":{"name":"podium","category":"","tags":["speach","microphone","conference","politics","audience","presentation"],"variants":{"outline":"f1d8"}},"point-off":{"name":"point-off","category":"","tags":["dot","label"],"variants":{"outline":"f181"}},"point":{"name":"point","category":"","tags":["dot","label"],"variants":{"outline":"eb0c","filled":"f698"}},"pointer-bolt":{"name":"pointer-bolt","category":"System","tags":[],"variants":{"outline":"f999"}},"pointer-cancel":{"name":"pointer-cancel","category":"System","tags":[],"variants":{"outline":"f99a"}},"pointer-check":{"name":"pointer-check","category":"System","tags":[],"variants":{"outline":"f99b"}},"pointer-code":{"name":"pointer-code","category":"System","tags":[],"variants":{"outline":"f99c"}},"pointer-cog":{"name":"pointer-cog","category":"System","tags":[],"variants":{"outline":"f99d"}},"pointer-dollar":{"name":"pointer-dollar","category":"System","tags":[],"variants":{"outline":"f99e"}},"pointer-down":{"name":"pointer-down","category":"System","tags":[],"variants":{"outline":"f99f"}},"pointer-exclamation":{"name":"pointer-exclamation","category":"System","tags":[],"variants":{"outline":"f9a0"}},"pointer-heart":{"name":"pointer-heart","category":"System","tags":[],"variants":{"outline":"f9a1"}},"pointer-minus":{"name":"pointer-minus","category":"System","tags":[],"variants":{"outline":"f9a2"}},"pointer-off":{"name":"pointer-off","category":"System","tags":["cursor","mouse","point","click","arrow"],"variants":{"outline":"f9a3"}},"pointer-pause":{"name":"pointer-pause","category":"System","tags":[],"variants":{"outline":"f9a4"}},"pointer-pin":{"name":"pointer-pin","category":"System","tags":[],"variants":{"outline":"f9a5"}},"pointer-plus":{"name":"pointer-plus","category":"System","tags":[],"variants":{"outline":"f9a6"}},"pointer-question":{"name":"pointer-question","category":"System","tags":[],"variants":{"outline":"f9a7"}},"pointer-search":{"name":"pointer-search","category":"System","tags":[],"variants":{"outline":"f9a8"}},"pointer-share":{"name":"pointer-share","category":"System","tags":[],"variants":{"outline":"f9a9"}},"pointer-star":{"name":"pointer-star","category":"System","tags":[],"variants":{"outline":"f9aa"}},"pointer-up":{"name":"pointer-up","category":"System","tags":[],"variants":{"outline":"f9ab"}},"pointer-x":{"name":"pointer-x","category":"System","tags":[],"variants":{"outline":"f9ac"}},"pointer":{"name":"pointer","category":"System","tags":["cursor","mouse","point","click","arrow"],"variants":{"outline":"f265","filled":"fb30"}},"pokeball-off":{"name":"pokeball-off","category":"Map","tags":["pokemon","go","catch","game","play"],"variants":{"outline":"f41c"}},"pokeball":{"name":"pokeball","category":"Map","tags":["pokemon","go","catch","game","play"],"variants":{"outline":"eec1"}},"poker-chip":{"name":"poker-chip","category":"Games","tags":["casino","game","money","gambling"],"variants":{"outline":"f515"}},"polaroid":{"name":"polaroid","category":"Photography","tags":["picture","photo","camera","polarization","develop","film","lens"],"variants":{"outline":"eec2","filled":"fa4b"}},"polygon-off":{"name":"polygon-off","category":"Design","tags":["shape","form","geometry","circle","line"],"variants":{"outline":"f182"}},"polygon":{"name":"polygon","category":"Design","tags":["shape","form","geometry","circle","line"],"variants":{"outline":"efd0"}},"poo":{"name":"poo","category":"","tags":["poop","shit","crap","toilet"],"variants":{"outline":"f258","filled":"fec9"}},"pool-off":{"name":"pool-off","category":"Sport","tags":["swim","water","swimmer","holiday","swimming","vacation","relax","sport"],"variants":{"outline":"f41d"}},"pool":{"name":"pool","category":"Sport","tags":["swim","water","swimmer","holiday","swimming","vacation","relax","sport"],"variants":{"outline":"ed91"}},"power":{"name":"power","category":"Devices","tags":["on","off","turn on","turn off","electricity"],"variants":{"outline":"eb0d"}},"pray":{"name":"pray","category":"","tags":["religion","faith","christianity","islam","buddhism","judaism"],"variants":{"outline":"ecbf"}},"premium-rights":{"name":"premium-rights","category":"","tags":["money","work","job","cash","dollar"],"variants":{"outline":"efbd"}},"prescription":{"name":"prescription","category":"Health","tags":["doctor","pharmacy","drug","pills","medical","disease"],"variants":{"outline":"ef99"}},"presentation-analytics":{"name":"presentation-analytics","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"eec3","filled":"ff5d"}},"presentation-off":{"name":"presentation-off","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"f183"}},"presentation":{"name":"presentation","category":"Document","tags":["slideshow","display","exhibition","speech","topic","conference"],"variants":{"outline":"eb70","filled":"ff5c"}},"printer-off":{"name":"printer-off","category":"Devices","tags":["fax","office","device"],"variants":{"outline":"f184"}},"printer":{"name":"printer","category":"Devices","tags":["fax","office","device"],"variants":{"outline":"eb0e"}},"prism-light":{"name":"prism-light","category":"","tags":[],"variants":{"outline":"fea6"}},"prism-off":{"name":"prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"faaf"}},"prism-plus":{"name":"prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab0"}},"prism":{"name":"prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab1"}},"prison":{"name":"prison","category":"Map","tags":["jail","policeman","police","cop","handcuff","arrest","prisoner","thief"],"variants":{"outline":"ef79"}},"progress-alert":{"name":"progress-alert","category":"System","tags":[],"variants":{"outline":"fa07"}},"progress-bolt":{"name":"progress-bolt","category":"System","tags":[],"variants":{"outline":"fa08"}},"progress-check":{"name":"progress-check","category":"System","tags":[],"variants":{"outline":"fa09"}},"progress-down":{"name":"progress-down","category":"System","tags":[],"variants":{"outline":"fa0a"}},"progress-help":{"name":"progress-help","category":"System","tags":[],"variants":{"outline":"fa0b"}},"progress-x":{"name":"progress-x","category":"System","tags":[],"variants":{"outline":"fa0c"}},"progress":{"name":"progress","category":"System","tags":[],"variants":{"outline":"fa0d"}},"prompt":{"name":"prompt","category":"","tags":["command line","terminal","code"],"variants":{"outline":"eb0f"}},"prong":{"name":"prong","category":"","tags":[],"variants":{"outline":"fda1"}},"propeller-off":{"name":"propeller-off","category":"","tags":["rotate","blade","spiral","air","ship","fan","power"],"variants":{"outline":"f185"}},"propeller":{"name":"propeller","category":"","tags":["rotate","blade","spiral","air","ship","fan","power"],"variants":{"outline":"eec4"}},"protocol":{"name":"protocol","category":"","tags":[],"variants":{"outline":"fd81"}},"pumpkin-scary":{"name":"pumpkin-scary","category":"","tags":["halloween","horror","spooky","costume","decoration"],"variants":{"outline":"f587"}},"puzzle-2":{"name":"puzzle-2","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"ef83"}},"puzzle-off":{"name":"puzzle-off","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"f186"}},"puzzle":{"name":"puzzle","category":"Games","tags":["jigsaw","extension","add-on"],"variants":{"outline":"eb10","filled":"f699"}},"pyramid-off":{"name":"pyramid-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"f187"}},"pyramid-plus":{"name":"pyramid-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab2"}},"pyramid":{"name":"pyramid","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"eec5"}},"qrcode-off":{"name":"qrcode-off","category":"Devices","tags":["scan","data"],"variants":{"outline":"f41e"}},"qrcode":{"name":"qrcode","category":"Devices","tags":["scan","data"],"variants":{"outline":"eb11"}},"question-mark":{"name":"question-mark","category":"","tags":["sign","symbol","ask","sentence","word","letters","?"],"variants":{"outline":"ec9d"}},"quote-off":{"name":"quote-off","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"f188"}},"quote":{"name":"quote","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"efbe"}},"quotes":{"name":"quotes","category":"Text","tags":["chat","message","text","punctuation","quotation","comment"],"variants":{"outline":"fb1e"}},"radar-2":{"name":"radar-2","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f016"}},"radar-off":{"name":"radar-off","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f41f"}},"radar":{"name":"radar","category":"Map","tags":["location","navigation","gps","find","signal","technology","submarine"],"variants":{"outline":"f017","filled":"fe0d"}},"radio-off":{"name":"radio-off","category":"Media","tags":["music","news","sound","broadcost","communication","station"],"variants":{"outline":"f420"}},"radio":{"name":"radio","category":"Media","tags":["music","news","sound","broadcost","communication","station"],"variants":{"outline":"ef2d"}},"radioactive-off":{"name":"radioactive-off","category":"Symbols","tags":["dangerous","precarious","danger","sign","symbol","warning","caution","chernobyl","reactor","atomic","powerhouses","generator"],"variants":{"outline":"f189"}},"radioactive":{"name":"radioactive","category":"Symbols","tags":["dangerous","precarious","danger","sign","symbol","warning","caution","chernobyl","reactor","atomic","powerhouses","generator"],"variants":{"outline":"ecc0","filled":"f760"}},"radius-bottom-left":{"name":"radius-bottom-left","category":"Design","tags":["round","corner","rounded","border","css","style","bottom"],"variants":{"outline":"eec6"}},"radius-bottom-right":{"name":"radius-bottom-right","category":"Design","tags":["round","corner","rounded","border","css","style","top"],"variants":{"outline":"eec7"}},"radius-top-left":{"name":"radius-top-left","category":"Design","tags":["round","corner","rounded","border","css","style","bottom"],"variants":{"outline":"eec8"}},"radius-top-right":{"name":"radius-top-right","category":"Design","tags":["round","corner","rounded","border","css","style","top"],"variants":{"outline":"eec9"}},"rainbow-off":{"name":"rainbow-off","category":"Weather","tags":["colorful","weather","colors","colour","nature"],"variants":{"outline":"f18a"}},"rainbow":{"name":"rainbow","category":"Weather","tags":["colorful","weather","colors","colour","nature"],"variants":{"outline":"edbc"}},"rating-12-plus":{"name":"rating-12-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f266"}},"rating-14-plus":{"name":"rating-14-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f267"}},"rating-16-plus":{"name":"rating-16-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f268"}},"rating-18-plus":{"name":"rating-18-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f269"}},"rating-21-plus":{"name":"rating-21-plus","category":"Symbols","tags":["film","video","photo","movie","age","limiter"],"variants":{"outline":"f26a"}},"razor-electric":{"name":"razor-electric","category":"Health","tags":["shaver","barber","grooming","beard","moustache"],"variants":{"outline":"f4b4"}},"razor":{"name":"razor","category":"Health","tags":["shaver","barber","grooming","beard","moustache"],"variants":{"outline":"f4b5"}},"receipt-2":{"name":"receipt-2","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfa"}},"receipt-bitcoin":{"name":"receipt-bitcoin","category":"E-commerce","tags":[],"variants":{"outline":"fd66"}},"receipt-dollar":{"name":"receipt-dollar","category":"E-commerce","tags":[],"variants":{"outline":"fd67"}},"receipt-euro":{"name":"receipt-euro","category":"E-commerce","tags":[],"variants":{"outline":"fd68"}},"receipt-off":{"name":"receipt-off","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfb"}},"receipt-pound":{"name":"receipt-pound","category":"E-commerce","tags":[],"variants":{"outline":"fd69"}},"receipt-refund":{"name":"receipt-refund","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","give","back","return"],"variants":{"outline":"edfc"}},"receipt-rupee":{"name":"receipt-rupee","category":"","tags":[],"variants":{"outline":"fd82"}},"receipt-tax":{"name":"receipt-tax","category":"Document","tags":["income","percentage","money","finance","charge","obligation","taxpayer","vat"],"variants":{"outline":"edbd"}},"receipt-yen":{"name":"receipt-yen","category":"E-commerce","tags":[],"variants":{"outline":"fd6a"}},"receipt-yuan":{"name":"receipt-yuan","category":"E-commerce","tags":[],"variants":{"outline":"fd6b"}},"receipt":{"name":"receipt","category":"Document","tags":["bill","restaurant","shop","price","pay","money","total","tax"],"variants":{"outline":"edfd","filled":"ff06"}},"recharging":{"name":"recharging","category":"","tags":["battery","power","charge","socket","electricity","device","phone","laptop","low"],"variants":{"outline":"eeca"}},"record-mail-off":{"name":"record-mail-off","category":"","tags":["voice","voicemail","message"],"variants":{"outline":"f18b"}},"record-mail":{"name":"record-mail","category":"","tags":["voice","voicemail","message"],"variants":{"outline":"eb12"}},"rectangle-rounded-bottom":{"name":"rectangle-rounded-bottom","category":"Shapes","tags":[],"variants":{"outline":"faed"}},"rectangle-rounded-top":{"name":"rectangle-rounded-top","category":"Shapes","tags":[],"variants":{"outline":"faee"}},"rectangle-vertical":{"name":"rectangle-vertical","category":"Shapes","tags":["shape","geometric","math","upright"],"variants":{"outline":"ed36","filled":"f69b"}},"rectangle":{"name":"rectangle","category":"Shapes","tags":["shape","geometric","math"],"variants":{"outline":"ed37","filled":"f69a"}},"rectangular-prism-off":{"name":"rectangular-prism-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab3"}},"rectangular-prism-plus":{"name":"rectangular-prism-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab4"}},"rectangular-prism":{"name":"rectangular-prism","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab5"}},"recycle-off":{"name":"recycle-off","category":"Symbols","tags":["trash","rubbish","recyclable","reuse","waste"],"variants":{"outline":"f18c"}},"recycle":{"name":"recycle","category":"Symbols","tags":["trash","rubbish","recyclable","reuse","waste"],"variants":{"outline":"eb9b"}},"refresh-alert":{"name":"refresh-alert","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ed57"}},"refresh-dot":{"name":"refresh-dot","category":"Arrows","tags":["again","reload","arrows","loading","replay"],"variants":{"outline":"efbf"}},"refresh-off":{"name":"refresh-off","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"f18d"}},"refresh":{"name":"refresh","category":"Arrows","tags":["synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb13"}},"regex-off":{"name":"regex-off","category":"Text","tags":["regular","expression","code","replace","programming","coding","variables"],"variants":{"outline":"f421"}},"regex":{"name":"regex","category":"Text","tags":["regular","expression","code","replace","programming","coding","variables"],"variants":{"outline":"f31f"}},"registered":{"name":"registered","category":"","tags":["copyright","trademark","rights"],"variants":{"outline":"eb14"}},"relation-many-to-many":{"name":"relation-many-to-many","category":"Database","tags":["data","model","analysis","multiple","connection","database","link"],"variants":{"outline":"ed7f","filled":"fe0c"}},"relation-one-to-many":{"name":"relation-one-to-many","category":"Database","tags":["data","model","analysis","multiple","connection","database","link"],"variants":{"outline":"ed80","filled":"fe0b"}},"relation-one-to-one":{"name":"relation-one-to-one","category":"Database","tags":["data","model","analysis","connection","database","link"],"variants":{"outline":"ed81","filled":"fe0a"}},"reload":{"name":"reload","category":"Arrows","tags":["refresh","repeat","update","sync","loading"],"variants":{"outline":"f3ae"}},"reorder":{"name":"reorder","category":"","tags":[],"variants":{"outline":"fc15"}},"repeat-off":{"name":"repeat-off","category":"Media","tags":["reuse","redo","action","replay","loop","flip"],"variants":{"outline":"f18e"}},"repeat-once":{"name":"repeat-once","category":"Media","tags":["reuse","redo","action","replay","loop"],"variants":{"outline":"eb71"}},"repeat":{"name":"repeat","category":"Media","tags":["reuse","redo","action","replay","loop","flip"],"variants":{"outline":"eb72"}},"replace-off":{"name":"replace-off","category":"","tags":["change","place","position","move","exchange"],"variants":{"outline":"f422"}},"replace":{"name":"replace","category":"","tags":["change","place","position","move","exchange"],"variants":{"outline":"ebc7","filled":"f69c"}},"report-analytics":{"name":"report-analytics","category":"Document","tags":["statistics","results","business","sales","analysis","analyse","bar","chart"],"variants":{"outline":"eecb"}},"report-medical":{"name":"report-medical","category":"Document","tags":["hospital","doctor","health","sickness","illness","test","results"],"variants":{"outline":"eecc"}},"report-money":{"name":"report-money","category":"Document","tags":["results","business","sales","analysis","analyse","finance","financial","total"],"variants":{"outline":"eecd"}},"report-off":{"name":"report-off","category":"Document","tags":["time","timesheet","analysis","analyse","results","business","company"],"variants":{"outline":"f18f"}},"report-search":{"name":"report-search","category":"Document","tags":["analytic","statistics","data","results","graph","document"],"variants":{"outline":"ef84"}},"report":{"name":"report","category":"Document","tags":["time","timesheet","analysis","analyse","results","business","company"],"variants":{"outline":"eece"}},"reserved-line":{"name":"reserved-line","category":"","tags":[],"variants":{"outline":"f9f6"}},"resize":{"name":"resize","category":"Design","tags":["picture","photo","alter","change","height","width"],"variants":{"outline":"eecf"}},"restore":{"name":"restore","category":"","tags":[],"variants":{"outline":"fafd"}},"rewind-backward-10":{"name":"rewind-backward-10","category":"Media","tags":[],"variants":{"outline":"faba"}},"rewind-backward-15":{"name":"rewind-backward-15","category":"Media","tags":[],"variants":{"outline":"fabb"}},"rewind-backward-20":{"name":"rewind-backward-20","category":"Media","tags":[],"variants":{"outline":"fabc"}},"rewind-backward-30":{"name":"rewind-backward-30","category":"Media","tags":[],"variants":{"outline":"fabd"}},"rewind-backward-40":{"name":"rewind-backward-40","category":"Media","tags":[],"variants":{"outline":"fabe"}},"rewind-backward-5":{"name":"rewind-backward-5","category":"Media","tags":[],"variants":{"outline":"fabf"}},"rewind-backward-50":{"name":"rewind-backward-50","category":"Media","tags":[],"variants":{"outline":"fac0"}},"rewind-backward-60":{"name":"rewind-backward-60","category":"Media","tags":[],"variants":{"outline":"fac1"}},"rewind-forward-10":{"name":"rewind-forward-10","category":"Media","tags":[],"variants":{"outline":"fac2"}},"rewind-forward-15":{"name":"rewind-forward-15","category":"Media","tags":[],"variants":{"outline":"fac3"}},"rewind-forward-20":{"name":"rewind-forward-20","category":"Media","tags":[],"variants":{"outline":"fac4"}},"rewind-forward-30":{"name":"rewind-forward-30","category":"Media","tags":[],"variants":{"outline":"fac5"}},"rewind-forward-40":{"name":"rewind-forward-40","category":"Media","tags":[],"variants":{"outline":"fac6"}},"rewind-forward-5":{"name":"rewind-forward-5","category":"Media","tags":[],"variants":{"outline":"fac7"}},"rewind-forward-50":{"name":"rewind-forward-50","category":"Media","tags":[],"variants":{"outline":"fac8"}},"rewind-forward-60":{"name":"rewind-forward-60","category":"Media","tags":[],"variants":{"outline":"fac9"}},"ribbon-health":{"name":"ribbon-health","category":"Symbols","tags":["medical","care","heatlh","medic","healthcare"],"variants":{"outline":"f58e"}},"rings":{"name":"rings","category":"Sport","tags":[],"variants":{"outline":"fa6a"}},"ripple-off":{"name":"ripple-off","category":"Nature","tags":["wave","water","breeze","ocean","sea"],"variants":{"outline":"f190"}},"ripple":{"name":"ripple","category":"Nature","tags":["wave","water","breeze","ocean","sea"],"variants":{"outline":"ed82"}},"road-off":{"name":"road-off","category":"Map","tags":["car","travel","journey","traffic","highway","route","racing"],"variants":{"outline":"f191"}},"road-sign":{"name":"road-sign","category":"Map","tags":["telltale","prohibitive","indicative","cautionary","codex","restrictions"],"variants":{"outline":"ecdd"}},"road":{"name":"road","category":"Map","tags":["car","travel","journey","traffic","highway","route","racing"],"variants":{"outline":"f018"}},"robot-face":{"name":"robot-face","category":"","tags":[],"variants":{"outline":"fcbe"}},"robot-off":{"name":"robot-off","category":"","tags":["technology","ai","machine","bot","android"],"variants":{"outline":"f192"}},"robot":{"name":"robot","category":"","tags":["technology","ai","machine","bot","android"],"variants":{"outline":"f00b"}},"rocket-off":{"name":"rocket-off","category":"Map","tags":["universe","galaxy","space","journey","discover","extraterrestrial","spaceship"],"variants":{"outline":"f193"}},"rocket":{"name":"rocket","category":"Map","tags":["universe","galaxy","space","journey","discover","extraterrestrial","spaceship"],"variants":{"outline":"ec45"}},"roller-skating":{"name":"roller-skating","category":"Sport","tags":["sport","hobby","fitness"],"variants":{"outline":"efd1"}},"rollercoaster-off":{"name":"rollercoaster-off","category":"Vehicles","tags":["adrenaline","height","speed","funfair","fun","attraction","extreme"],"variants":{"outline":"f423"}},"rollercoaster":{"name":"rollercoaster","category":"Vehicles","tags":["adrenaline","height","speed","funfair","fun","attraction","extreme"],"variants":{"outline":"f0a2"}},"rosette-discount-check-off":{"name":"rosette-discount-check-off","category":"E-commerce","tags":["reduction","price","cost","money","shopping","bargain","tick","done","verified","certificate","valid","official","success","invalid"],"variants":{"outline":"ff10"}},"rosette-discount-check":{"name":"rosette-discount-check","category":"E-commerce","tags":["reduction","price","cost","money","shopping","bargain","tick","done","verified","certificate","valid","official","success"],"variants":{"outline":"f1f8","filled":"f746"}},"rosette-discount-off":{"name":"rosette-discount-off","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"f3e6"}},"rosette-discount":{"name":"rosette-discount","category":"E-commerce","tags":["sale","reduction","price","cost","money","shopping","bargain"],"variants":{"outline":"ee7c","filled":"ff05"}},"rosette-number-0":{"name":"rosette-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f58f"}},"rosette-number-1":{"name":"rosette-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f590"}},"rosette-number-2":{"name":"rosette-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f591"}},"rosette-number-3":{"name":"rosette-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f592"}},"rosette-number-4":{"name":"rosette-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f593"}},"rosette-number-5":{"name":"rosette-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f594"}},"rosette-number-6":{"name":"rosette-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f595"}},"rosette-number-7":{"name":"rosette-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f596"}},"rosette-number-8":{"name":"rosette-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f597"}},"rosette-number-9":{"name":"rosette-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f598"}},"rosette":{"name":"rosette","category":"Shapes","tags":["shape","badge","star","medal"],"variants":{"outline":"f599","filled":"f69d"}},"rotate-2":{"name":"rotate-2","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ebb4"}},"rotate-360":{"name":"rotate-360","category":"Arrows","tags":["degree","circle","camera","spin","rotation"],"variants":{"outline":"ef85"}},"rotate-3d":{"name":"rotate-3d","category":"","tags":["rotation","geometry","3d","modeling"],"variants":{"outline":"f020"}},"rotate-clockwise-2":{"name":"rotate-clockwise-2","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ebb5"}},"rotate-clockwise":{"name":"rotate-clockwise","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb15"}},"rotate-dot":{"name":"rotate-dot","category":"Arrows","tags":["direction","degree","circle","camera","spin","rotation"],"variants":{"outline":"efe5"}},"rotate-rectangle":{"name":"rotate-rectangle","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"ec15"}},"rotate":{"name":"rotate","category":"Arrows","tags":["refresh","synchronization","reload","restart","spinner","loader","ajax","update","arrows"],"variants":{"outline":"eb16"}},"route-2":{"name":"route-2","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","road","route-two","2-direction"],"variants":{"outline":"f4b6"}},"route-alt-left":{"name":"route-alt-left","category":"Map","tags":["alternate-left","alternate-route","left-path","alternate-way","left-trail","alt-left-road","leftward-route","shift-left","change-left","left-road"],"variants":{"outline":"fca9"}},"route-alt-right":{"name":"route-alt-right","category":"Map","tags":["alternate-right","alternate-route","right-path","alternate-way","right-trail","alt-right-road","rightward-route","shift-right","change-right","right-road"],"variants":{"outline":"fcaa"}},"route-off":{"name":"route-off","category":"Map","tags":["path","navigation","map"],"variants":{"outline":"f194"}},"route-scan":{"name":"route-scan","category":"","tags":[],"variants":{"outline":"fcbf"}},"route-square-2":{"name":"route-square-2","category":"Map","tags":["square-route","route-square","path","journey","direction","trail","navigate","travel","way","square-direction"],"variants":{"outline":"fcab"}},"route-square":{"name":"route-square","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","square","geometric-route","square-path"],"variants":{"outline":"fcac"}},"route-x-2":{"name":"route-x-2","category":"Map","tags":["x-route","route-x","path","journey","direction","trail","navigate","travel","way","crossing"],"variants":{"outline":"fcad"}},"route-x":{"name":"route-x","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","cross","x-cross","cross-path"],"variants":{"outline":"fcae"}},"route":{"name":"route","category":"Map","tags":["path","journey","direction","trail","navigate","travel","way","road","travel-route","route-way"],"variants":{"outline":"eb17"}},"router-off":{"name":"router-off","category":"Devices","tags":["wifi","device","wireless","signal","station","cast"],"variants":{"outline":"f424"}},"router":{"name":"router","category":"Devices","tags":["wifi","device","wireless","signal","station","cast"],"variants":{"outline":"eb18"}},"row-insert-bottom":{"name":"row-insert-bottom","category":"Database","tags":["table","layout","add","below","macro","excel"],"variants":{"outline":"eed0"}},"row-insert-top":{"name":"row-insert-top","category":"Database","tags":["table","layout","add","below","macro","excel"],"variants":{"outline":"eed1"}},"row-remove":{"name":"row-remove","category":"Database","tags":[],"variants":{"outline":"fafe"}},"rss":{"name":"rss","category":"","tags":["feed","subscribe"],"variants":{"outline":"eb19"}},"rubber-stamp-off":{"name":"rubber-stamp-off","category":"Document","tags":["rubber","stamp","seal","letter","mail","document","signature"],"variants":{"outline":"f5aa"}},"rubber-stamp":{"name":"rubber-stamp","category":"Document","tags":["rubber","stamp","seal","letter","mail","document","signature"],"variants":{"outline":"f5ab"}},"ruler-2-off":{"name":"ruler-2-off","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f195"}},"ruler-2":{"name":"ruler-2","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"eed2"}},"ruler-3":{"name":"ruler-3","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f290"}},"ruler-measure-2":{"name":"ruler-measure-2","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical","distance"],"variants":{"outline":"ff0f"}},"ruler-measure":{"name":"ruler-measure","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical","distance"],"variants":{"outline":"f291"}},"ruler-off":{"name":"ruler-off","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"f196"}},"ruler":{"name":"ruler","category":"Design","tags":["maths","dimensions","size","width","length","geometry","measure","technical"],"variants":{"outline":"eb1a"}},"run":{"name":"run","category":"Sport","tags":["jog","dislocating","movement","motion","sprint"],"variants":{"outline":"ec82"}},"rv-truck":{"name":"rv-truck","category":"","tags":[],"variants":{"outline":"fcc0"}},"s-turn-down":{"name":"s-turn-down","category":"Arrows","tags":["arrow","direction","bottom","south"],"variants":{"outline":"f516"}},"s-turn-left":{"name":"s-turn-left","category":"Arrows","tags":["arrow","direction","west"],"variants":{"outline":"f517"}},"s-turn-right":{"name":"s-turn-right","category":"Arrows","tags":["arrow","direction","east"],"variants":{"outline":"f518"}},"s-turn-up":{"name":"s-turn-up","category":"Arrows","tags":["arrow","direction","top","north"],"variants":{"outline":"f519"}},"sailboat-2":{"name":"sailboat-2","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"f5f7"}},"sailboat-off":{"name":"sailboat-off","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"f425"}},"sailboat":{"name":"sailboat","category":"Vehicles","tags":["sailor","journey","sea","lake","ocean","river"],"variants":{"outline":"ec83"}},"salad":{"name":"salad","category":"Food","tags":["food","vegetable","vegan","healthy"],"variants":{"outline":"f50a"}},"salt":{"name":"salt","category":"Food","tags":["food","cooking","kitchen","spice","salty"],"variants":{"outline":"ef16"}},"sandbox":{"name":"sandbox","category":"System","tags":[],"variants":{"outline":"fd6c"}},"satellite-off":{"name":"satellite-off","category":"Map","tags":["orbit","space","moon","earth","planet","communication","information","celestial"],"variants":{"outline":"f197"}},"satellite":{"name":"satellite","category":"Map","tags":["orbit","space","moon","earth","planet","communication","information","celestial"],"variants":{"outline":"eed3"}},"sausage":{"name":"sausage","category":"Food","tags":["food","grill","bonfire","campfire","meat","hot-dog"],"variants":{"outline":"ef17"}},"scale-off":{"name":"scale-off","category":"","tags":["weigh","balance","amount","heavy","light","libra"],"variants":{"outline":"f198"}},"scale-outline-off":{"name":"scale-outline-off","category":"","tags":["weight","weigh","diet","healthy","measurement"],"variants":{"outline":"f199"}},"scale-outline":{"name":"scale-outline","category":"","tags":["weight","weigh","diet","healthy","measurement"],"variants":{"outline":"ef53"}},"scale":{"name":"scale","category":"","tags":["weigh","balance","amount","heavy","light","libra"],"variants":{"outline":"ebc2"}},"scan-eye":{"name":"scan-eye","category":"","tags":["technology","security","safety","safe","secure"],"variants":{"outline":"f1ff"}},"scan-position":{"name":"scan-position","category":"","tags":[],"variants":{"outline":"fdac"}},"scan":{"name":"scan","category":"","tags":["code","barcode","qr code","app","scanner","document"],"variants":{"outline":"ebc8"}},"schema-off":{"name":"schema-off","category":"Database","tags":["graph","data","infography"],"variants":{"outline":"f426"}},"schema":{"name":"schema","category":"Database","tags":["graph","data","infography"],"variants":{"outline":"f200"}},"school-bell":{"name":"school-bell","category":"","tags":["break","lesson","alarm","ring"],"variants":{"outline":"f64a"}},"school-off":{"name":"school-off","category":"Map","tags":["students","class","teachers","professors","doctors","hall","classroom","subject","science","break","lesson"],"variants":{"outline":"f19a"}},"school":{"name":"school","category":"Map","tags":["students","class","teachers","professors","doctors","hall","classroom","subject","science","break","lesson"],"variants":{"outline":"ecf7"}},"scissors-off":{"name":"scissors-off","category":"Design","tags":["cut","paper","file","document","hairdresser","blade","sharp"],"variants":{"outline":"f19b"}},"scissors":{"name":"scissors","category":"Design","tags":["cut","paper","file","document","hairdresser","blade","sharp"],"variants":{"outline":"eb1b"}},"scooter-electric":{"name":"scooter-electric","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ecc1"}},"scooter":{"name":"scooter","category":"Vehicles","tags":["vehicle","drive","driver","engine","motor","journey","trip"],"variants":{"outline":"ec6c"}},"scoreboard":{"name":"scoreboard","category":"Sport","tags":[],"variants":{"outline":"fa6b"}},"screen-share-off":{"name":"screen-share-off","category":"Devices","tags":["monitor","stream","tv","mirroring","cast","online"],"variants":{"outline":"ed17"}},"screen-share":{"name":"screen-share","category":"Devices","tags":["monitor","stream","tv","mirroring","cast","online"],"variants":{"outline":"ed18"}},"screenshot":{"name":"screenshot","category":"","tags":["image","capture","photo"],"variants":{"outline":"f201"}},"scribble-off":{"name":"scribble-off","category":"","tags":["kid","doodle","draw","drawing"],"variants":{"outline":"f427"}},"scribble":{"name":"scribble","category":"","tags":["kid","doodle","draw","drawing"],"variants":{"outline":"f0a3"}},"script-minus":{"name":"script-minus","category":"Document","tags":["code","programming","coding","remove","delete"],"variants":{"outline":"f2d7"}},"script-plus":{"name":"script-plus","category":"Document","tags":["code","programming","coding","add","new"],"variants":{"outline":"f2d8"}},"script-x":{"name":"script-x","category":"Document","tags":["code","programming","coding","remove","delete"],"variants":{"outline":"f2d9"}},"script":{"name":"script","category":"Document","tags":["code","programming","coding","document","development"],"variants":{"outline":"f2da"}},"scuba-diving-tank":{"name":"scuba-diving-tank","category":"Sport","tags":["dive","diving","water","open water","underwater","pressure","compressed air","air"],"variants":{"outline":"fefa","filled":"ff04"}},"scuba-diving":{"name":"scuba-diving","category":"Sport","tags":["dive","diving","water","open water","underwater"],"variants":{"outline":"fd4e"}},"scuba-mask-off":{"name":"scuba-mask-off","category":"Sport","tags":["dive","diving","water","holiday","underwater","snorkeling","equipment"],"variants":{"outline":"f428"}},"scuba-mask":{"name":"scuba-mask","category":"Sport","tags":["dive","diving","water","holiday","underwater","snorkeling","equipment"],"variants":{"outline":"eed4"}},"sdk":{"name":"sdk","category":"Development","tags":["development","programming","programmer","web","app"],"variants":{"outline":"f3af"}},"search-off":{"name":"search-off","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"f19c"}},"search":{"name":"search","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"eb1c"}},"section-sign":{"name":"section-sign","category":"","tags":["legal","paragraph","law"],"variants":{"outline":"f019"}},"section":{"name":"section","category":"Design","tags":["html","element","layout","divide","position","website"],"variants":{"outline":"eed5","filled":"fe09"}},"seeding-off":{"name":"seeding-off","category":"Nature","tags":["nature","greenery","grow","soil","harvest","plant","flower","tree","leaf"],"variants":{"outline":"f19d"}},"seeding":{"name":"seeding","category":"Nature","tags":["nature","greenery","grow","soil","harvest","plant","flower","tree","leaf"],"variants":{"outline":"ed51"}},"select-all":{"name":"select-all","category":"","tags":[],"variants":{"outline":"f9f7"}},"select":{"name":"select","category":"Arrows","tags":["arrows","select","dropdown","chevron","down","south","bottom","direction","input"],"variants":{"outline":"ec9e"}},"selector":{"name":"selector","category":"Arrows","tags":["arrows","select","dropdown","chevron","down","south","bottom","direction","input"],"variants":{"outline":"eb1d"}},"send-2":{"name":"send-2","category":"","tags":["transmit","dispatch","forward","deliver","message","communication","send-out","send-away","transfer","send-off"],"variants":{"outline":"fd5d"}},"send-off":{"name":"send-off","category":"Communication","tags":["message","mail","email","gmail","paper","airplane","aeroplane"],"variants":{"outline":"f429"}},"send":{"name":"send","category":"Communication","tags":["message","mail","email","gmail","paper","airplane","aeroplane"],"variants":{"outline":"eb1e"}},"seo":{"name":"seo","category":"Development","tags":["www","web","browser","search","result"],"variants":{"outline":"f26b"}},"separator-horizontal":{"name":"separator-horizontal","category":"Text","tags":["divider","space","separate","set apart","flat-lying"],"variants":{"outline":"ec79"}},"separator-vertical":{"name":"separator-vertical","category":"Text","tags":["divider","space","separate","set apart","upright"],"variants":{"outline":"ec7a"}},"separator":{"name":"separator","category":"Text","tags":["divider","space","separate","set apart"],"variants":{"outline":"ebda"}},"server-2":{"name":"server-2","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"f07c"}},"server-bolt":{"name":"server-bolt","category":"Devices","tags":["data","database","storage","lighting","power","energy"],"variants":{"outline":"f320"}},"server-cog":{"name":"server-cog","category":"Devices","tags":["settings","storage","data","database"],"variants":{"outline":"f321"}},"server-off":{"name":"server-off","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"f19e"}},"server":{"name":"server","category":"Devices","tags":["storage","hosting","www"],"variants":{"outline":"eb1f"}},"servicemark":{"name":"servicemark","category":"Symbols","tags":["trademark","sign","symbol","registration"],"variants":{"outline":"ec09"}},"settings-2":{"name":"settings-2","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"f5ac"}},"settings-automation":{"name":"settings-automation","category":"System","tags":["system","technology","automate","configure","device","program"],"variants":{"outline":"eed6"}},"settings-bolt":{"name":"settings-bolt","category":"System","tags":[],"variants":{"outline":"f9ad"}},"settings-cancel":{"name":"settings-cancel","category":"System","tags":[],"variants":{"outline":"f9ae"}},"settings-check":{"name":"settings-check","category":"System","tags":[],"variants":{"outline":"f9af"}},"settings-code":{"name":"settings-code","category":"System","tags":[],"variants":{"outline":"f9b0"}},"settings-cog":{"name":"settings-cog","category":"System","tags":[],"variants":{"outline":"f9b1"}},"settings-dollar":{"name":"settings-dollar","category":"System","tags":[],"variants":{"outline":"f9b2"}},"settings-down":{"name":"settings-down","category":"System","tags":[],"variants":{"outline":"f9b3"}},"settings-exclamation":{"name":"settings-exclamation","category":"System","tags":[],"variants":{"outline":"f9b4"}},"settings-heart":{"name":"settings-heart","category":"System","tags":[],"variants":{"outline":"f9b5"}},"settings-minus":{"name":"settings-minus","category":"System","tags":[],"variants":{"outline":"f9b6"}},"settings-off":{"name":"settings-off","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"f19f"}},"settings-pause":{"name":"settings-pause","category":"System","tags":[],"variants":{"outline":"f9b7"}},"settings-pin":{"name":"settings-pin","category":"System","tags":[],"variants":{"outline":"f9b8"}},"settings-plus":{"name":"settings-plus","category":"System","tags":[],"variants":{"outline":"f9b9"}},"settings-question":{"name":"settings-question","category":"System","tags":[],"variants":{"outline":"f9ba"}},"settings-search":{"name":"settings-search","category":"System","tags":[],"variants":{"outline":"f9bb"}},"settings-share":{"name":"settings-share","category":"System","tags":[],"variants":{"outline":"f9bc"}},"settings-star":{"name":"settings-star","category":"System","tags":[],"variants":{"outline":"f9bd"}},"settings-up":{"name":"settings-up","category":"System","tags":[],"variants":{"outline":"f9be"}},"settings-x":{"name":"settings-x","category":"System","tags":[],"variants":{"outline":"f9bf"}},"settings":{"name":"settings","category":"System","tags":["cog","edit","gear","preferences","tools"],"variants":{"outline":"eb20","filled":"f69e"}},"shadow-off":{"name":"shadow-off","category":"Photography","tags":["dark","sun","area","covered","dim","light","css","effect"],"variants":{"outline":"eed7"}},"shadow":{"name":"shadow","category":"Photography","tags":["dark","sun","area","covered","dim","light","css","effect"],"variants":{"outline":"eed8"}},"shape-2":{"name":"shape-2","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eed9"}},"shape-3":{"name":"shape-3","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eeda"}},"shape-off":{"name":"shape-off","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"f1a0"}},"shape":{"name":"shape","category":"Design","tags":["draw","square","form","create","outline"],"variants":{"outline":"eb9c"}},"share-2":{"name":"share-2","category":"Arrows","tags":["network","link","connection"],"variants":{"outline":"f799"}},"share-3":{"name":"share-3","category":"Arrows","tags":["network","link","connection"],"variants":{"outline":"f7bd"}},"share-off":{"name":"share-off","category":"","tags":["network","link","connection"],"variants":{"outline":"f1a1"}},"share":{"name":"share","category":"","tags":["network","link","connection"],"variants":{"outline":"eb21"}},"shareplay":{"name":"shareplay","category":"Media","tags":[],"variants":{"outline":"fea5"}},"shield-bolt":{"name":"shield-bolt","category":"System","tags":[],"variants":{"outline":"f9c0"}},"shield-cancel":{"name":"shield-cancel","category":"System","tags":[],"variants":{"outline":"f9c1"}},"shield-check":{"name":"shield-check","category":"System","tags":["safety","protect","protection","yes","add"],"variants":{"outline":"eb22","filled":"f761"}},"shield-checkered":{"name":"shield-checkered","category":"System","tags":["knight","guard","defence","protect"],"variants":{"outline":"ef9a","filled":"f762"}},"shield-chevron":{"name":"shield-chevron","category":"System","tags":["knight","guard","defence","protect"],"variants":{"outline":"ef9b"}},"shield-code":{"name":"shield-code","category":"System","tags":[],"variants":{"outline":"f9c2"}},"shield-cog":{"name":"shield-cog","category":"System","tags":[],"variants":{"outline":"f9c3"}},"shield-dollar":{"name":"shield-dollar","category":"System","tags":[],"variants":{"outline":"f9c4"}},"shield-down":{"name":"shield-down","category":"System","tags":[],"variants":{"outline":"f9c5"}},"shield-exclamation":{"name":"shield-exclamation","category":"System","tags":[],"variants":{"outline":"f9c6"}},"shield-half":{"name":"shield-half","category":"System","tags":["safe","security","secure","safety","protect","protection"],"variants":{"outline":"f358","filled":"f357"}},"shield-heart":{"name":"shield-heart","category":"System","tags":[],"variants":{"outline":"f9c7"}},"shield-lock":{"name":"shield-lock","category":"System","tags":["secure","security","closed","key","safety"],"variants":{"outline":"ed58","filled":"f763"}},"shield-minus":{"name":"shield-minus","category":"System","tags":[],"variants":{"outline":"f9c8"}},"shield-off":{"name":"shield-off","category":"System","tags":["safety","protect","protection"],"variants":{"outline":"ecf8"}},"shield-pause":{"name":"shield-pause","category":"System","tags":[],"variants":{"outline":"f9c9"}},"shield-pin":{"name":"shield-pin","category":"System","tags":[],"variants":{"outline":"f9ca"}},"shield-plus":{"name":"shield-plus","category":"System","tags":[],"variants":{"outline":"f9cb"}},"shield-question":{"name":"shield-question","category":"System","tags":[],"variants":{"outline":"f9cc"}},"shield-search":{"name":"shield-search","category":"System","tags":[],"variants":{"outline":"f9cd"}},"shield-share":{"name":"shield-share","category":"System","tags":[],"variants":{"outline":"f9ce"}},"shield-star":{"name":"shield-star","category":"System","tags":[],"variants":{"outline":"f9cf"}},"shield-up":{"name":"shield-up","category":"System","tags":[],"variants":{"outline":"f9d0"}},"shield-x":{"name":"shield-x","category":"System","tags":["unprotected","protection","cancel","no"],"variants":{"outline":"eb23"}},"shield":{"name":"shield","category":"System","tags":["safety","protect","protection"],"variants":{"outline":"eb24","filled":"f69f"}},"ship-off":{"name":"ship-off","category":"Vehicles","tags":["sail","sail across","ocean","river","lake","sea","sailor","journey","transit","manufactures","containers"],"variants":{"outline":"f42a"}},"ship":{"name":"ship","category":"Vehicles","tags":["sail","sail across","ocean","river","lake","sea","sailor","journey","transit","manufactures","containers"],"variants":{"outline":"ec84"}},"shirt-off":{"name":"shirt-off","category":"","tags":["gear","outfit","mocker"],"variants":{"outline":"f1a2"}},"shirt-sport":{"name":"shirt-sport","category":"","tags":["basketball","soccer","football","player","clothes","game"],"variants":{"outline":"f26c"}},"shirt":{"name":"shirt","category":"","tags":["gear","outfit","mocker"],"variants":{"outline":"ec0a","filled":"f6a0"}},"shoe-off":{"name":"shoe-off","category":"","tags":["sport","boots","boot","footwear","sneaker","nike","adidas"],"variants":{"outline":"f1a4"}},"shoe":{"name":"shoe","category":"","tags":["sport","boots","boot","footwear","sneaker","nike","adidas"],"variants":{"outline":"efd2"}},"shopping-bag-check":{"name":"shopping-bag-check","category":"E-commerce","tags":[],"variants":{"outline":"fc16"}},"shopping-bag-discount":{"name":"shopping-bag-discount","category":"E-commerce","tags":[],"variants":{"outline":"fc17"}},"shopping-bag-edit":{"name":"shopping-bag-edit","category":"E-commerce","tags":[],"variants":{"outline":"fc18"}},"shopping-bag-exclamation":{"name":"shopping-bag-exclamation","category":"E-commerce","tags":[],"variants":{"outline":"fc19"}},"shopping-bag-heart":{"name":"shopping-bag-heart","category":"","tags":[],"variants":{"outline":"fda2"}},"shopping-bag-minus":{"name":"shopping-bag-minus","category":"E-commerce","tags":[],"variants":{"outline":"fc1a"}},"shopping-bag-plus":{"name":"shopping-bag-plus","category":"E-commerce","tags":[],"variants":{"outline":"fc1b"}},"shopping-bag-search":{"name":"shopping-bag-search","category":"E-commerce","tags":[],"variants":{"outline":"fc1c"}},"shopping-bag-x":{"name":"shopping-bag-x","category":"E-commerce","tags":[],"variants":{"outline":"fc1d"}},"shopping-bag":{"name":"shopping-bag","category":"E-commerce","tags":["shop","store","ecommerce","buy"],"variants":{"outline":"f5f8"}},"shopping-cart-bolt":{"name":"shopping-cart-bolt","category":"","tags":[],"variants":{"outline":"fb57"}},"shopping-cart-cancel":{"name":"shopping-cart-cancel","category":"","tags":[],"variants":{"outline":"fb58"}},"shopping-cart-check":{"name":"shopping-cart-check","category":"","tags":[],"variants":{"outline":"fb59"}},"shopping-cart-code":{"name":"shopping-cart-code","category":"","tags":[],"variants":{"outline":"fb5a"}},"shopping-cart-cog":{"name":"shopping-cart-cog","category":"","tags":[],"variants":{"outline":"fb5b"}},"shopping-cart-copy":{"name":"shopping-cart-copy","category":"","tags":[],"variants":{"outline":"fb5c"}},"shopping-cart-discount":{"name":"shopping-cart-discount","category":"","tags":[],"variants":{"outline":"fb5d"}},"shopping-cart-dollar":{"name":"shopping-cart-dollar","category":"","tags":[],"variants":{"outline":"fb5e"}},"shopping-cart-down":{"name":"shopping-cart-down","category":"","tags":[],"variants":{"outline":"fb5f"}},"shopping-cart-exclamation":{"name":"shopping-cart-exclamation","category":"","tags":[],"variants":{"outline":"fb60"}},"shopping-cart-heart":{"name":"shopping-cart-heart","category":"","tags":[],"variants":{"outline":"fb61"}},"shopping-cart-minus":{"name":"shopping-cart-minus","category":"","tags":[],"variants":{"outline":"fb62"}},"shopping-cart-off":{"name":"shopping-cart-off","category":"E-commerce","tags":["shop","store","buy","purchase","product","bag","trolley","supermarket","grocery"],"variants":{"outline":"eedc"}},"shopping-cart-pause":{"name":"shopping-cart-pause","category":"","tags":[],"variants":{"outline":"fb63"}},"shopping-cart-pin":{"name":"shopping-cart-pin","category":"","tags":[],"variants":{"outline":"fb64"}},"shopping-cart-plus":{"name":"shopping-cart-plus","category":"","tags":[],"variants":{"outline":"fb65"}},"shopping-cart-question":{"name":"shopping-cart-question","category":"","tags":[],"variants":{"outline":"fb66"}},"shopping-cart-search":{"name":"shopping-cart-search","category":"","tags":[],"variants":{"outline":"fb67"}},"shopping-cart-share":{"name":"shopping-cart-share","category":"","tags":[],"variants":{"outline":"fb68"}},"shopping-cart-star":{"name":"shopping-cart-star","category":"","tags":[],"variants":{"outline":"fb69"}},"shopping-cart-up":{"name":"shopping-cart-up","category":"","tags":[],"variants":{"outline":"fb6a"}},"shopping-cart-x":{"name":"shopping-cart-x","category":"","tags":[],"variants":{"outline":"fb6b"}},"shopping-cart":{"name":"shopping-cart","category":"E-commerce","tags":["shop","store","buy","purchase","product","bag","trolley","supermarket","grocery"],"variants":{"outline":"eb25","filled":"fc3f"}},"shovel-pitchforks":{"name":"shovel-pitchforks","category":"","tags":["shovel","pitchfork","digging-tool","gardening","agriculture","farm-tool","manual-labor","soil","gardening-implement","dig"],"variants":{"outline":"fd3a"}},"shovel":{"name":"shovel","category":"","tags":["garden","tool","digging","farm","dirt","gardening"],"variants":{"outline":"f1d9"}},"shredder":{"name":"shredder","category":"Devices","tags":["paper","document","destroy","device","office","confidential"],"variants":{"outline":"eedf"}},"sign-left":{"name":"sign-left","category":"Map","tags":["direction","west","navigation","arrow","navigate"],"variants":{"outline":"f06b","filled":"f6a1"}},"sign-right":{"name":"sign-right","category":"Map","tags":["direction","east","navigation","arrow","navigate"],"variants":{"outline":"f06c","filled":"f6a2"}},"signal-2g":{"name":"signal-2g","category":"Devices","tags":["mobile","network","phone","wifi","connection"],"variants":{"outline":"f79a"}},"signal-3g":{"name":"signal-3g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1ee"}},"signal-4g-plus":{"name":"signal-4g-plus","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f259"}},"signal-4g":{"name":"signal-4g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1ef"}},"signal-5g":{"name":"signal-5g","category":"Devices","tags":["mobile","network","connetion","wi-fi","wireless","smartphone","technology"],"variants":{"outline":"f1f0"}},"signal-6g":{"name":"signal-6g","category":"Devices","tags":[],"variants":{"outline":"f9f8"}},"signal-e":{"name":"signal-e","category":"Devices","tags":[],"variants":{"outline":"f9f9"}},"signal-g":{"name":"signal-g","category":"Devices","tags":[],"variants":{"outline":"f9fa"}},"signal-h-plus":{"name":"signal-h-plus","category":"Devices","tags":[],"variants":{"outline":"f9fb"}},"signal-h":{"name":"signal-h","category":"Devices","tags":[],"variants":{"outline":"f9fc"}},"signal-lte":{"name":"signal-lte","category":"Devices","tags":[],"variants":{"outline":"f9fd"}},"signature-off":{"name":"signature-off","category":"Text","tags":["name","certficate","sign","edit","write","document","writing"],"variants":{"outline":"f1a5"}},"signature":{"name":"signature","category":"Text","tags":["name","certficate","sign","edit","write","document","writing"],"variants":{"outline":"eee0"}},"sitemap-off":{"name":"sitemap-off","category":"Development","tags":["page","webpage","website","list","roadmap","index"],"variants":{"outline":"f1a6"}},"sitemap":{"name":"sitemap","category":"Development","tags":["page","webpage","website","list","roadmap","index"],"variants":{"outline":"eb9d"}},"skateboard-off":{"name":"skateboard-off","category":"Vehicles","tags":["toy","vehicle","electrical"],"variants":{"outline":"f42b"}},"skateboard":{"name":"skateboard","category":"Vehicles","tags":["toy","vehicle","electrical"],"variants":{"outline":"ecc2"}},"skateboarding":{"name":"skateboarding","category":"Sport","tags":[],"variants":{"outline":"faca"}},"skew-x":{"name":"skew-x","category":"","tags":["skew-horizontal","tilt-x","slant-x","distort-horizontal","angled","slanted","tilted","diagonal","oblique","slope-x"],"variants":{"outline":"fd3b"}},"skew-y":{"name":"skew-y","category":"","tags":["skew-vertical","tilt-y","slant-y","distort-vertical","angled","slanted","tilted","diagonal","oblique","slope-y"],"variants":{"outline":"fd3c"}},"ski-jumping":{"name":"ski-jumping","category":"Sport","tags":[],"variants":{"outline":"fa6c"}},"skull":{"name":"skull","category":"Health","tags":["halloween","skeleton","dead","pirate","danger","horror"],"variants":{"outline":"f292"}},"slash":{"name":"slash","category":"Math","tags":["sign","divide","dash"],"variants":{"outline":"f4f9"}},"slashes":{"name":"slashes","category":"","tags":["sign","key","button","dash","divide"],"variants":{"outline":"f588"}},"sleigh":{"name":"sleigh","category":"Vehicles","tags":["winter","christmas","snow","santa","transport","sledge"],"variants":{"outline":"ef9c"}},"slice":{"name":"slice","category":"Design","tags":["knife","cut","chop","portion","kitchen","tool"],"variants":{"outline":"ebdb"}},"slideshow":{"name":"slideshow","category":"Text","tags":["photo","picture","video","presentation","camera","display","ad"],"variants":{"outline":"ebc9"}},"smart-home-off":{"name":"smart-home-off","category":"Buildings","tags":["apple","devices","connection","link","wifi","bluetooth"],"variants":{"outline":"f1a7"}},"smart-home":{"name":"smart-home","category":"Buildings","tags":["apple","devices","connection","link","wifi","bluetooth"],"variants":{"outline":"ecde"}},"smoking-no":{"name":"smoking-no","category":"Health","tags":["ban","prohibition","cigarette","public place"],"variants":{"outline":"ecc3"}},"smoking":{"name":"smoking","category":"Health","tags":["cigarette","public place"],"variants":{"outline":"ecc4"}},"snowboarding":{"name":"snowboarding","category":"","tags":[],"variants":{"outline":"fd4f"}},"snowflake-off":{"name":"snowflake-off","category":"Weather","tags":["winter","weather","cold","frost"],"variants":{"outline":"f1a8"}},"snowflake":{"name":"snowflake","category":"Weather","tags":["winter","weather","cold","frost"],"variants":{"outline":"ec0b"}},"snowman":{"name":"snowman","category":"","tags":["winter","christmas","snow","cold","frosty"],"variants":{"outline":"f26d"}},"soccer-field":{"name":"soccer-field","category":"Sport","tags":["football","pitch","player","vall","goal","goalkeeper","kick","ball","score","sport","sportsman"],"variants":{"outline":"ed92"}},"social-off":{"name":"social-off","category":"","tags":["society","community","collectivity"],"variants":{"outline":"f1a9"}},"social":{"name":"social","category":"","tags":["society","community","collectivity"],"variants":{"outline":"ebec"}},"sock":{"name":"sock","category":"","tags":["clothing","clothes","foot","feet","leg","knit","wool","cotton","ankle"],"variants":{"outline":"eee1"}},"sofa-off":{"name":"sofa-off","category":"","tags":["chair","seat","home","furniture","couch"],"variants":{"outline":"f42c"}},"sofa":{"name":"sofa","category":"","tags":["chair","seat","home","furniture","couch"],"variants":{"outline":"efaf"}},"solar-electricity":{"name":"solar-electricity","category":"","tags":[],"variants":{"outline":"fcc1"}},"solar-panel-2":{"name":"solar-panel-2","category":"","tags":["energy","sun","power","ecology","electricity"],"variants":{"outline":"f7be"}},"solar-panel":{"name":"solar-panel","category":"","tags":["energy","sun","power","ecology","electricity"],"variants":{"outline":"f7bf"}},"sort-0-9":{"name":"sort-0-9","category":"Text","tags":["numbers","one","two","three","four","five","numerical"],"variants":{"outline":"f54d"}},"sort-9-0":{"name":"sort-9-0","category":"Text","tags":["numbers","one","two","three","four","five","numerical"],"variants":{"outline":"f54e"}},"sort-a-z":{"name":"sort-a-z","category":"Text","tags":["alphabet","letters","alphabetical"],"variants":{"outline":"f54f"}},"sort-ascending-2":{"name":"sort-ascending-2","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eee2","filled":"ff5b"}},"sort-ascending-letters":{"name":"sort-ascending-letters","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef18"}},"sort-ascending-numbers":{"name":"sort-ascending-numbers","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef19"}},"sort-ascending-shapes":{"name":"sort-ascending-shapes","category":"","tags":[],"variants":{"outline":"fd94","filled":"ff5a"}},"sort-ascending-small-big":{"name":"sort-ascending-small-big","category":"","tags":[],"variants":{"outline":"fd95"}},"sort-ascending":{"name":"sort-ascending","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eb26"}},"sort-descending-2":{"name":"sort-descending-2","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eee3","filled":"ff59"}},"sort-descending-letters":{"name":"sort-descending-letters","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef1a"}},"sort-descending-numbers":{"name":"sort-descending-numbers","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"ef1b"}},"sort-descending-shapes":{"name":"sort-descending-shapes","category":"","tags":[],"variants":{"outline":"fd97","filled":"ff58"}},"sort-descending-small-big":{"name":"sort-descending-small-big","category":"","tags":[],"variants":{"outline":"fd96"}},"sort-descending":{"name":"sort-descending","category":"Text","tags":["filter","classify","arrange","order"],"variants":{"outline":"eb27"}},"sort-z-a":{"name":"sort-z-a","category":"Text","tags":["alphabet","letters","alphabetical"],"variants":{"outline":"f550"}},"sos":{"name":"sos","category":"","tags":["help","emergency","signal","message","alert"],"variants":{"outline":"f24a"}},"soup-off":{"name":"soup-off","category":"Food","tags":["food","cooking","restaurant","bowl","hot","kitchen"],"variants":{"outline":"f42d"}},"soup":{"name":"soup","category":"Food","tags":["food","cooking","restaurant","bowl","hot","kitchen"],"variants":{"outline":"ef2e","filled":"fe08"}},"source-code":{"name":"source-code","category":"","tags":["programming","coding","html","development"],"variants":{"outline":"f4a2"}},"space-off":{"name":"space-off","category":"Text","tags":["keyboard","type","gap"],"variants":{"outline":"f1aa"}},"space":{"name":"space","category":"Text","tags":["keyboard","type","gap"],"variants":{"outline":"ec0c"}},"spaces":{"name":"spaces","category":"","tags":[],"variants":{"outline":"fea4"}},"spacing-horizontal":{"name":"spacing-horizontal","category":"Document","tags":["align","between","text","gap"],"variants":{"outline":"ef54"}},"spacing-vertical":{"name":"spacing-vertical","category":"Document","tags":["align","between","text","gap"],"variants":{"outline":"ef55"}},"spade":{"name":"spade","category":"Shapes","tags":["cards","casino","poker","shapes","gamble"],"variants":{"outline":"effa","filled":"f6a3"}},"sparkles":{"name":"sparkles","category":"","tags":["star","light","fire","shine"],"variants":{"outline":"f6d7"}},"speakerphone":{"name":"speakerphone","category":"Media","tags":["voice","loud","microphone","loudspeaker","event","protest","speaker","shout","listen"],"variants":{"outline":"ed61"}},"speedboat":{"name":"speedboat","category":"Vehicles","tags":["motorboat","holiday","sea","ocean","engine","travel","lake","summer"],"variants":{"outline":"ed93"}},"sphere-off":{"name":"sphere-off","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab6"}},"sphere-plus":{"name":"sphere-plus","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab7"}},"sphere":{"name":"sphere","category":"Shapes","tags":["3d","pattern","abstract","geometric","shape"],"variants":{"outline":"fab8"}},"spider":{"name":"spider","category":"Animals","tags":["halloween","animal","scary","horror","cobweb","insect"],"variants":{"outline":"f293"}},"spiral-off":{"name":"spiral-off","category":"","tags":["hypnosis","rotation","growth"],"variants":{"outline":"f42e"}},"spiral":{"name":"spiral","category":"","tags":["hypnosis","rotation","growth"],"variants":{"outline":"f294"}},"sport-billard":{"name":"sport-billard","category":"Sport","tags":["pool","game","ball","pub","entertainment"],"variants":{"outline":"eee4"}},"spray":{"name":"spray","category":"","tags":["paint","clean","hygiene","graffiti"],"variants":{"outline":"f50b"}},"spy-off":{"name":"spy-off","category":"","tags":["security","incognito","privacy","browser","web"],"variants":{"outline":"f42f"}},"spy":{"name":"spy","category":"","tags":["security","incognito","privacy","browser","web"],"variants":{"outline":"f227"}},"sql":{"name":"sql","category":"Extensions","tags":["file","document","type","format","extencion"],"variants":{"outline":"f7c0"}},"square-arrow-down":{"name":"square-arrow-down","category":"Arrows","tags":["direction","shape","bottom","south"],"variants":{"outline":"f4b7","filled":"fb31"}},"square-arrow-left":{"name":"square-arrow-left","category":"Arrows","tags":["direction","shape","west"],"variants":{"outline":"f4b8","filled":"fb32"}},"square-arrow-right":{"name":"square-arrow-right","category":"Arrows","tags":["direction","shape","east"],"variants":{"outline":"f4b9","filled":"fb33"}},"square-arrow-up":{"name":"square-arrow-up","category":"Arrows","tags":["direction","shape","north","top"],"variants":{"outline":"f4ba","filled":"fb34"}},"square-asterisk":{"name":"square-asterisk","category":"","tags":["shapes","star","password","security"],"variants":{"outline":"f01a","filled":"fb35"}},"square-check":{"name":"square-check","category":"Shapes","tags":["checkbox","yes"],"variants":{"outline":"eb28","filled":"f76d"}},"square-chevron-down":{"name":"square-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f627","filled":"fb36"}},"square-chevron-left":{"name":"square-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f628","filled":"fb37"}},"square-chevron-right":{"name":"square-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f629","filled":"fb38"}},"square-chevron-up":{"name":"square-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f62a","filled":"fb39"}},"square-chevrons-down":{"name":"square-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f64b","filled":"fb3a"}},"square-chevrons-left":{"name":"square-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f64c","filled":"fb3b"}},"square-chevrons-right":{"name":"square-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f64d","filled":"fb3c"}},"square-chevrons-up":{"name":"square-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f64e","filled":"fb3d"}},"square-dot":{"name":"square-dot","category":"Shapes","tags":["corner","shape","element","point"],"variants":{"outline":"ed59","filled":"fb3e"}},"square-f0":{"name":"square-f0","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f526","filled":"f76e"}},"square-f1":{"name":"square-f1","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f527","filled":"f76f"}},"square-f2":{"name":"square-f2","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f528","filled":"f770"}},"square-f3":{"name":"square-f3","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f529","filled":"f771"}},"square-f4":{"name":"square-f4","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52a","filled":"f772"}},"square-f5":{"name":"square-f5","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52b","filled":"f773"}},"square-f6":{"name":"square-f6","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52c","filled":"f774"}},"square-f7":{"name":"square-f7","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52d","filled":"f775"}},"square-f8":{"name":"square-f8","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52e","filled":"f776"}},"square-f9":{"name":"square-f9","category":"System","tags":["shape","keyboard","button","key","hotkey"],"variants":{"outline":"f52f","filled":"f777"}},"square-forbid-2":{"name":"square-forbid-2","category":"","tags":["box","disabled","off","block"],"variants":{"outline":"ed5a"}},"square-forbid":{"name":"square-forbid","category":"","tags":["box","disabled","off","block"],"variants":{"outline":"ed5b"}},"square-half":{"name":"square-half","category":"Design","tags":["shapes","pattern","geometric","highlight","geometry"],"variants":{"outline":"effb"}},"square-key":{"name":"square-key","category":"","tags":["shape","lock","door","acsses"],"variants":{"outline":"f638"}},"square-letter-a":{"name":"square-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47c","filled":"fe07"}},"square-letter-b":{"name":"square-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47d","filled":"fe06"}},"square-letter-c":{"name":"square-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47e","filled":"fe05"}},"square-letter-d":{"name":"square-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f47f","filled":"fe04"}},"square-letter-e":{"name":"square-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f480","filled":"fe03"}},"square-letter-f":{"name":"square-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f481","filled":"fe02"}},"square-letter-g":{"name":"square-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f482","filled":"fe01"}},"square-letter-h":{"name":"square-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f483","filled":"fe00"}},"square-letter-i":{"name":"square-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f484","filled":"fdff"}},"square-letter-j":{"name":"square-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f485","filled":"fdfe"}},"square-letter-k":{"name":"square-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f486","filled":"fdfd"}},"square-letter-l":{"name":"square-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f487","filled":"fdfc"}},"square-letter-m":{"name":"square-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f488","filled":"fdfb"}},"square-letter-n":{"name":"square-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f489","filled":"fdfa"}},"square-letter-o":{"name":"square-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48a","filled":"fdf9"}},"square-letter-p":{"name":"square-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48b","filled":"fdf8"}},"square-letter-q":{"name":"square-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48c","filled":"fdf7"}},"square-letter-r":{"name":"square-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48d","filled":"fdf6"}},"square-letter-s":{"name":"square-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48e","filled":"fdf5"}},"square-letter-t":{"name":"square-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f48f","filled":"fdf4"}},"square-letter-u":{"name":"square-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f490","filled":"fdf3"}},"square-letter-v":{"name":"square-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f4bb","filled":"fdf2"}},"square-letter-w":{"name":"square-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f491","filled":"fdf1"}},"square-letter-x":{"name":"square-letter-x","category":"Letters","tags":["cancel","close","delete","remove","times","clear","no"],"variants":{"outline":"f4bc","filled":"fdf0"}},"square-letter-y":{"name":"square-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f492","filled":"fdef"}},"square-letter-z":{"name":"square-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f493","filled":"fdee"}},"square-minus":{"name":"square-minus","category":"Shapes","tags":["remove","indeterminate"],"variants":{"outline":"eb29","filled":"fb3f"}},"square-number-0":{"name":"square-number-0","category":"Numbers","tags":["zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee5","filled":"f764"}},"square-number-1":{"name":"square-number-1","category":"Numbers","tags":["one","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee6","filled":"f765"}},"square-number-2":{"name":"square-number-2","category":"Numbers","tags":["two","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee7","filled":"f7fa"}},"square-number-3":{"name":"square-number-3","category":"Numbers","tags":["three","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee8","filled":"f766"}},"square-number-4":{"name":"square-number-4","category":"Numbers","tags":["four","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eee9","filled":"f767"}},"square-number-5":{"name":"square-number-5","category":"Numbers","tags":["five","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeea","filled":"f768"}},"square-number-6":{"name":"square-number-6","category":"Numbers","tags":["six","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeeb","filled":"f769"}},"square-number-7":{"name":"square-number-7","category":"Numbers","tags":["seven","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeec","filled":"f76a"}},"square-number-8":{"name":"square-number-8","category":"Numbers","tags":["eight","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeed","filled":"f76b"}},"square-number-9":{"name":"square-number-9","category":"Numbers","tags":["nine","zero","number","digit","quantity","amount","order","maths","sum","total"],"variants":{"outline":"eeee","filled":"f76c"}},"square-off":{"name":"square-off","category":"Shapes","tags":["checkbox","box","shape"],"variants":{"outline":"eeef"}},"square-percentage":{"name":"square-percentage","category":"","tags":[],"variants":{"outline":"fd83"}},"square-plus-2":{"name":"square-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc96"}},"square-plus":{"name":"square-plus","category":"Shapes","tags":["add","create","new"],"variants":{"outline":"eb2a"}},"square-root-2":{"name":"square-root-2","category":"Math","tags":["mathematics","maths","science","calculate","calculator","algebra"],"variants":{"outline":"eef0"}},"square-root":{"name":"square-root","category":"Math","tags":["mathematics","maths","science","calculate","calculator","algebra"],"variants":{"outline":"eef1"}},"square-rotated-forbid-2":{"name":"square-rotated-forbid-2","category":"","tags":["shape","geometry","rhombus","ban","restricted"],"variants":{"outline":"f01b"}},"square-rotated-forbid":{"name":"square-rotated-forbid","category":"","tags":["shape","geometry","rhombus","ban","restricted"],"variants":{"outline":"f01c"}},"square-rotated-off":{"name":"square-rotated-off","category":"Shapes","tags":["shape","sign","geometry","geometric","quadrilateral","rhombus"],"variants":{"outline":"eef2"}},"square-rotated":{"name":"square-rotated","category":"Shapes","tags":["shape","sign","geometry","geometric","quadrilateral","rhombus"],"variants":{"outline":"ecdf","filled":"f6a4"}},"square-rounded-arrow-down":{"name":"square-rounded-arrow-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f639","filled":"f6db"}},"square-rounded-arrow-left":{"name":"square-rounded-arrow-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f63a","filled":"f6dc"}},"square-rounded-arrow-right":{"name":"square-rounded-arrow-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f63b","filled":"f6dd"}},"square-rounded-arrow-up":{"name":"square-rounded-arrow-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f63c","filled":"f6de"}},"square-rounded-check":{"name":"square-rounded-check","category":"Shapes","tags":["shape","tick","accpet","done","yes"],"variants":{"outline":"f63d","filled":"f6df"}},"square-rounded-chevron-down":{"name":"square-rounded-chevron-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f62b","filled":"f6e0"}},"square-rounded-chevron-left":{"name":"square-rounded-chevron-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f62c","filled":"f6e1"}},"square-rounded-chevron-right":{"name":"square-rounded-chevron-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f62d","filled":"f6e2"}},"square-rounded-chevron-up":{"name":"square-rounded-chevron-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f62e","filled":"f6e3"}},"square-rounded-chevrons-down":{"name":"square-rounded-chevrons-down","category":"Arrows","tags":["shape","south","bottom","direction"],"variants":{"outline":"f64f","filled":"f6e4"}},"square-rounded-chevrons-left":{"name":"square-rounded-chevrons-left","category":"Arrows","tags":["shape","direction","west"],"variants":{"outline":"f650","filled":"f6e5"}},"square-rounded-chevrons-right":{"name":"square-rounded-chevrons-right","category":"Arrows","tags":["shape","direction","east"],"variants":{"outline":"f651","filled":"f6e6"}},"square-rounded-chevrons-up":{"name":"square-rounded-chevrons-up","category":"Arrows","tags":["shape","direction","north","top"],"variants":{"outline":"f652","filled":"f6e7"}},"square-rounded-letter-a":{"name":"square-rounded-letter-a","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5ae","filled":"fded"}},"square-rounded-letter-b":{"name":"square-rounded-letter-b","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5af","filled":"fdec"}},"square-rounded-letter-c":{"name":"square-rounded-letter-c","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b0","filled":"fdeb"}},"square-rounded-letter-d":{"name":"square-rounded-letter-d","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b1","filled":"fdea"}},"square-rounded-letter-e":{"name":"square-rounded-letter-e","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b2","filled":"fde9"}},"square-rounded-letter-f":{"name":"square-rounded-letter-f","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b3","filled":"fde8"}},"square-rounded-letter-g":{"name":"square-rounded-letter-g","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b4","filled":"fde7"}},"square-rounded-letter-h":{"name":"square-rounded-letter-h","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b5","filled":"fde6"}},"square-rounded-letter-i":{"name":"square-rounded-letter-i","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b6","filled":"fde5"}},"square-rounded-letter-j":{"name":"square-rounded-letter-j","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b7","filled":"fde4"}},"square-rounded-letter-k":{"name":"square-rounded-letter-k","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b8","filled":"fde3"}},"square-rounded-letter-l":{"name":"square-rounded-letter-l","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5b9","filled":"fde2"}},"square-rounded-letter-m":{"name":"square-rounded-letter-m","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5ba","filled":"fde1"}},"square-rounded-letter-n":{"name":"square-rounded-letter-n","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bb","filled":"fde0"}},"square-rounded-letter-o":{"name":"square-rounded-letter-o","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bc","filled":"fddf"}},"square-rounded-letter-p":{"name":"square-rounded-letter-p","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bd","filled":"fdde"}},"square-rounded-letter-q":{"name":"square-rounded-letter-q","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5be","filled":"fddd"}},"square-rounded-letter-r":{"name":"square-rounded-letter-r","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5bf","filled":"fddc"}},"square-rounded-letter-s":{"name":"square-rounded-letter-s","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c0","filled":"fddb"}},"square-rounded-letter-t":{"name":"square-rounded-letter-t","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c1","filled":"fdda"}},"square-rounded-letter-u":{"name":"square-rounded-letter-u","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c2","filled":"fdd9"}},"square-rounded-letter-v":{"name":"square-rounded-letter-v","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c3","filled":"fdd8"}},"square-rounded-letter-w":{"name":"square-rounded-letter-w","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c4","filled":"fdd7"}},"square-rounded-letter-x":{"name":"square-rounded-letter-x","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c5","filled":"fdd6"}},"square-rounded-letter-y":{"name":"square-rounded-letter-y","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c6","filled":"fdd5"}},"square-rounded-letter-z":{"name":"square-rounded-letter-z","category":"Letters","tags":["shape","alphabet","sign","latin"],"variants":{"outline":"f5c7","filled":"fdd4"}},"square-rounded-minus-2":{"name":"square-rounded-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc97"}},"square-rounded-minus":{"name":"square-rounded-minus","category":"Shapes","tags":["shape","delete","remove","close","cancel"],"variants":{"outline":"f63e","filled":"fb40"}},"square-rounded-number-0":{"name":"square-rounded-number-0","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5c8","filled":"f778"}},"square-rounded-number-1":{"name":"square-rounded-number-1","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5c9","filled":"f779"}},"square-rounded-number-2":{"name":"square-rounded-number-2","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5ca","filled":"f77a"}},"square-rounded-number-3":{"name":"square-rounded-number-3","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cb","filled":"f77b"}},"square-rounded-number-4":{"name":"square-rounded-number-4","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cc","filled":"f77c"}},"square-rounded-number-5":{"name":"square-rounded-number-5","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cd","filled":"f77d"}},"square-rounded-number-6":{"name":"square-rounded-number-6","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5ce","filled":"f77e"}},"square-rounded-number-7":{"name":"square-rounded-number-7","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5cf","filled":"f77f"}},"square-rounded-number-8":{"name":"square-rounded-number-8","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5d0","filled":"f780"}},"square-rounded-number-9":{"name":"square-rounded-number-9","category":"Numbers","tags":["shape","number","digit"],"variants":{"outline":"f5d1","filled":"f781"}},"square-rounded-percentage":{"name":"square-rounded-percentage","category":"","tags":[],"variants":{"outline":"fd84"}},"square-rounded-plus-2":{"name":"square-rounded-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc98"}},"square-rounded-plus":{"name":"square-rounded-plus","category":"Shapes","tags":["shape","add","new","create"],"variants":{"outline":"f63f","filled":"f6e8"}},"square-rounded-x":{"name":"square-rounded-x","category":"Shapes","tags":["shape","close","delete","cross"],"variants":{"outline":"f640","filled":"f6e9"}},"square-rounded":{"name":"square-rounded","category":"Shapes","tags":["shape","box","figure","geometry"],"variants":{"outline":"f59a","filled":"f6a5"}},"square-toggle-horizontal":{"name":"square-toggle-horizontal","category":"Design","tags":["box","clone","move"],"variants":{"outline":"eef3"}},"square-toggle":{"name":"square-toggle","category":"Design","tags":["box","clone","move"],"variants":{"outline":"eef4"}},"square-x":{"name":"square-x","category":"Shapes","tags":["cancel","close","delete","remove","times","clear","no"],"variants":{"outline":"eb2b","filled":"fb41"}},"square":{"name":"square","category":"Shapes","tags":["checkbox","box","shape"],"variants":{"outline":"eb2c","filled":"fc40"}},"squares-diagonal":{"name":"squares-diagonal","category":"Design","tags":["boxes","layers"],"variants":{"outline":"eef5"}},"squares-selected":{"name":"squares-selected","category":"","tags":[],"variants":{"outline":"fea3"}},"squares":{"name":"squares","category":"Design","tags":["boxes","layers"],"variants":{"outline":"eef6","filled":"fe9f"}},"stack-2":{"name":"stack-2","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"eef7","filled":"fdd3"}},"stack-3":{"name":"stack-3","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"ef9d","filled":"fdd2"}},"stack-back":{"name":"stack-back","category":"","tags":[],"variants":{"outline":"fd26"}},"stack-backward":{"name":"stack-backward","category":"","tags":[],"variants":{"outline":"fd27"}},"stack-forward":{"name":"stack-forward","category":"","tags":[],"variants":{"outline":"fd28"}},"stack-front":{"name":"stack-front","category":"","tags":[],"variants":{"outline":"fd29"}},"stack-middle":{"name":"stack-middle","category":"","tags":[],"variants":{"outline":"fd2a"}},"stack-pop":{"name":"stack-pop","category":"Design","tags":["data","level","layout","arrow","out"],"variants":{"outline":"f234"}},"stack-push":{"name":"stack-push","category":"Design","tags":["arrange","data","level","layout","arrow"],"variants":{"outline":"f235"}},"stack":{"name":"stack","category":"Design","tags":["pile","elements","layout","wrap"],"variants":{"outline":"eb2d","filled":"fdd1"}},"stairs-down":{"name":"stairs-down","category":"Map","tags":["building","step","floor","staircase","clamber"],"variants":{"outline":"eca4"}},"stairs-up":{"name":"stairs-up","category":"Map","tags":["building","step","floor","staircase","entryway"],"variants":{"outline":"eca5"}},"stairs":{"name":"stairs","category":"Map","tags":["building","step","floor","staircase"],"variants":{"outline":"eca6"}},"star-half":{"name":"star-half","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"ed19","filled":"f6a7"}},"star-off":{"name":"star-off","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"ed62"}},"star":{"name":"star","category":"System","tags":["favorite","like","mark","bookmark","grade"],"variants":{"outline":"eb2e","filled":"f6a6"}},"stars-off":{"name":"stars-off","category":"System","tags":["favorite","like","mark","grade","bookmark","space","universe","extraterrestrial","galaxy"],"variants":{"outline":"f430"}},"stars":{"name":"stars","category":"System","tags":["favorite","like","mark","grade","bookmark","space","universe","extraterrestrial","galaxy"],"variants":{"outline":"ed38","filled":"f6a8"}},"status-change":{"name":"status-change","category":"","tags":["available","unavailable","switch"],"variants":{"outline":"f3b0"}},"steam":{"name":"steam","category":"","tags":["app","social","games","platform","software"],"variants":{"outline":"f24b"}},"steering-wheel-off":{"name":"steering-wheel-off","category":"Vehicles","tags":["drive","vehicle","direction","turn","holding","racing"],"variants":{"outline":"f431"}},"steering-wheel":{"name":"steering-wheel","category":"Vehicles","tags":["drive","vehicle","direction","turn","holding","racing"],"variants":{"outline":"ec7b","filled":"ff03"}},"step-into":{"name":"step-into","category":"Arrows","tags":["vector","placement","among","within"],"variants":{"outline":"ece0"}},"step-out":{"name":"step-out","category":"Arrows","tags":["vector","placement","outside","except"],"variants":{"outline":"ece1"}},"stereo-glasses":{"name":"stereo-glasses","category":"","tags":["cinema","3d","eyewear","film","movie"],"variants":{"outline":"f4cb"}},"stethoscope-off":{"name":"stethoscope-off","category":"Health","tags":["doctor","medical","physician","test","examination","health","illness","sickness","scrutiny","hospital"],"variants":{"outline":"f432"}},"stethoscope":{"name":"stethoscope","category":"Health","tags":["doctor","medical","physician","test","examination","health","illness","sickness","scrutiny","hospital"],"variants":{"outline":"edbe"}},"sticker-2":{"name":"sticker-2","category":"","tags":["label-2","adhesive","decorative-label","tag-2","sticky-note","decal","post-it","sticker-label","paper-sticker","2nd-sticker"],"variants":{"outline":"fd3d"}},"sticker":{"name":"sticker","category":"","tags":["label","stamp","adhesive"],"variants":{"outline":"eb2f"}},"storm-off":{"name":"storm-off","category":"Weather","tags":["weather","cloud","lighting","rain","wind","tornado"],"variants":{"outline":"f433"}},"storm":{"name":"storm","category":"Weather","tags":["weather","cloud","lighting","rain","wind","tornado"],"variants":{"outline":"f24c"}},"stretching-2":{"name":"stretching-2","category":"Sport","tags":[],"variants":{"outline":"fa6d"}},"stretching":{"name":"stretching","category":"Sport","tags":["exercise","yoga","workout","fitness","gym","body"],"variants":{"outline":"f2db"}},"strikethrough":{"name":"strikethrough","category":"Text","tags":["typography","horizontal","deleted","removed","unimportant"],"variants":{"outline":"eb9e"}},"submarine":{"name":"submarine","category":"Vehicles","tags":["sea","ocean","underwater","shipwater","war"],"variants":{"outline":"ed94"}},"subscript":{"name":"subscript","category":"Text","tags":["typography","below","formula","maths","fraction"],"variants":{"outline":"eb9f"}},"subtask":{"name":"subtask","category":"","tags":["management","break down","work"],"variants":{"outline":"ec9f"}},"sum-off":{"name":"sum-off","category":"Math","tags":["equation","add","plus","amount","total"],"variants":{"outline":"f1ab"}},"sum":{"name":"sum","category":"Math","tags":["equation","add","plus","amount","total"],"variants":{"outline":"eb73"}},"sun-electricity":{"name":"sun-electricity","category":"","tags":[],"variants":{"outline":"fcc2"}},"sun-high":{"name":"sun-high","category":"Weather","tags":["temperature","hot","wheater","thermometer","forecast"],"variants":{"outline":"f236"}},"sun-low":{"name":"sun-low","category":"Weather","tags":["temperature","cold","wheater","thermometer","forecast"],"variants":{"outline":"f237"}},"sun-moon":{"name":"sun-moon","category":"Weather","tags":["weather","day","night","hot","cold"],"variants":{"outline":"f4a3"}},"sun-off":{"name":"sun-off","category":"Weather","tags":["weather","light","mode","brightness"],"variants":{"outline":"ed63"}},"sun-wind":{"name":"sun-wind","category":"Weather","tags":["temperature","wheater","thermometer","forecast","windy"],"variants":{"outline":"f238"}},"sun":{"name":"sun","category":"Weather","tags":["weather","light","mode","brightness"],"variants":{"outline":"eb30","filled":"f6a9"}},"sunglasses":{"name":"sunglasses","category":"Health","tags":["summer","sun","look","shades","eyewear"],"variants":{"outline":"f239","filled":"fec8"}},"sunrise":{"name":"sunrise","category":"Weather","tags":["west","horizon","landscape","evening"],"variants":{"outline":"ef1c"}},"sunset-2":{"name":"sunset-2","category":"Weather","tags":["east","horizon","landscape","morning"],"variants":{"outline":"f23a"}},"sunset":{"name":"sunset","category":"Weather","tags":["east","horizon","landscape","morning"],"variants":{"outline":"ec31"}},"superscript":{"name":"superscript","category":"Text","tags":["typography","above","maths","fraction","trademark","footer"],"variants":{"outline":"eba0"}},"svg":{"name":"svg","category":"Extensions","tags":["file","format","extension","graphic","filetype"],"variants":{"outline":"f25a"}},"swimming":{"name":"swimming","category":"Sport","tags":["sport","water","pool","style","athletics","competitive"],"variants":{"outline":"ec92"}},"swipe-down":{"name":"swipe-down","category":"Arrows","tags":["gesture","swipe","downward-swipe","scroll-down","slide-down","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd5e","filled":"ff57"}},"swipe-left":{"name":"swipe-left","category":"Arrows","tags":["gesture","swipe","leftward-swipe","scroll-left","slide-left","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd5f","filled":"ff56"}},"swipe-right":{"name":"swipe-right","category":"Arrows","tags":["gesture","swipe","rightward-swipe","scroll-right","slide-right","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd60","filled":"ff55"}},"swipe-up":{"name":"swipe-up","category":"Arrows","tags":["gesture","swipe","upward-swipe","scroll-up","slide-up","touch-gesture","screen-swipe","gesture-control","interaction","user-swipe"],"variants":{"outline":"fd61","filled":"ff54"}},"swipe":{"name":"swipe","category":"","tags":["right","left","gesture","scroll"],"variants":{"outline":"f551"}},"switch-2":{"name":"switch-2","category":"Arrows","tags":["arrows","direction","music","spotify","change"],"variants":{"outline":"edbf"}},"switch-3":{"name":"switch-3","category":"Arrows","tags":["arrows","direction","music","spotify","change"],"variants":{"outline":"edc0"}},"switch-horizontal":{"name":"switch-horizontal","category":"Arrows","tags":["toggle","left","right","arrows"],"variants":{"outline":"eb31"}},"switch-vertical":{"name":"switch-vertical","category":"Arrows","tags":["toggle","up","down","arrows"],"variants":{"outline":"eb32"}},"switch":{"name":"switch","category":"Arrows","tags":["toggle","arrows"],"variants":{"outline":"eb33"}},"sword-off":{"name":"sword-off","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f434"}},"sword":{"name":"sword","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f030"}},"swords":{"name":"swords","category":"","tags":["weapon","knight","blade","war","minecraft","warrior"],"variants":{"outline":"f132"}},"table-alias":{"name":"table-alias","category":"Database","tags":["data","database","chart"],"variants":{"outline":"f25b"}},"table-column":{"name":"table-column","category":"Database","tags":["table","column","data-table","spreadsheet","table-structure","columnar","information","grid","table-columnar","dataset"],"variants":{"outline":"faff"}},"table-down":{"name":"table-down","category":"Database","tags":["table","down","arrow-down","table-arrow","descending","sort-down","data-table","directional","arrange-down","table-order"],"variants":{"outline":"fa1c"}},"table-export":{"name":"table-export","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column","cells","sheet","arrow"],"variants":{"outline":"eef8"}},"table-heart":{"name":"table-heart","category":"Database","tags":["table","heart","like","favorite","love","data-table","table-icon","heart-symbol","table-like","table-favorite"],"variants":{"outline":"fa1d"}},"table-import":{"name":"table-import","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column","cells","sheet","arrow"],"variants":{"outline":"eef9"}},"table-minus":{"name":"table-minus","category":"Database","tags":["table","minus","remove","subtract","delete","data-table","table-operation","table-remove","subtract-from-table","exclude"],"variants":{"outline":"fa1e"}},"table-off":{"name":"table-off","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column"],"variants":{"outline":"eefa"}},"table-options":{"name":"table-options","category":"Database","tags":["edit","chart","customization","repair","settings"],"variants":{"outline":"f25c"}},"table-plus":{"name":"table-plus","category":"Database","tags":["table","plus","add","insert","include","data-table","table-operation","table-add","add-to-table","include-in-table"],"variants":{"outline":"fa1f"}},"table-row":{"name":"table-row","category":"Database","tags":["table","row","data-table","spreadsheet","table-structure","row-wise","information","grid","table-row-wise","dataset"],"variants":{"outline":"fb00"}},"table-share":{"name":"table-share","category":"Database","tags":["table","share","share-table","data-sharing","collaboration","data-table","table-collaboration","table-cooperation","share-data","spreadsheet"],"variants":{"outline":"fa20"}},"table-shortcut":{"name":"table-shortcut","category":"Database","tags":["data","database","chart","network","server"],"variants":{"outline":"f25d"}},"table":{"name":"table","category":"Database","tags":["spreadsheet","layout","grid","arrange","row","column"],"variants":{"outline":"eba1","filled":"f782"}},"tag-off":{"name":"tag-off","category":"E-commerce","tags":["label","price"],"variants":{"outline":"efc0"}},"tag-starred":{"name":"tag-starred","category":"E-commerce","tags":["tag","starred","star","favorite","label","tagging","tagged-star","marked","tag-star","highlighted"],"variants":{"outline":"fc99"}},"tag":{"name":"tag","category":"E-commerce","tags":["label","price"],"variants":{"outline":"eb34","filled":"ff02"}},"tags-off":{"name":"tags-off","category":"E-commerce","tags":["label","price","shopping","promotion"],"variants":{"outline":"efc1"}},"tags":{"name":"tags","category":"E-commerce","tags":["label","price","shopping","promotion"],"variants":{"outline":"ef86","filled":"ff01"}},"tallymark-1":{"name":"tallymark-1","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec46"}},"tallymark-2":{"name":"tallymark-2","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec47"}},"tallymark-3":{"name":"tallymark-3","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec48"}},"tallymark-4":{"name":"tallymark-4","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec49"}},"tallymarks":{"name":"tallymarks","category":"Math","tags":["sign","symbol","numerical","consistent","system","counting"],"variants":{"outline":"ec4a"}},"tank":{"name":"tank","category":"Vehicles","tags":["war","military","armour","vehicle","gun","attack","shoot","battle","battlefield"],"variants":{"outline":"ed95"}},"target-arrow":{"name":"target-arrow","category":"Sport","tags":["goal","aim","archery","archer"],"variants":{"outline":"f51a"}},"target-off":{"name":"target-off","category":"Map","tags":["focus","bullseye","aim"],"variants":{"outline":"f1ad"}},"target":{"name":"target","category":"Map","tags":["focus","bullseye","aim"],"variants":{"outline":"eb35"}},"tax-euro":{"name":"tax-euro","category":"","tags":[],"variants":{"outline":"fef0"}},"tax-pound":{"name":"tax-pound","category":"","tags":[],"variants":{"outline":"feef"}},"tax":{"name":"tax","category":"","tags":[],"variants":{"outline":"feee"}},"teapot":{"name":"teapot","category":"","tags":["kettle","kitchen","hot","coffee","kitchenware"],"variants":{"outline":"f552"}},"telescope-off":{"name":"telescope-off","category":"","tags":["astronomy","moon","observation","vision","space","astrology"],"variants":{"outline":"f1ae"}},"telescope":{"name":"telescope","category":"","tags":["astronomy","moon","observation","vision","space","astrology"],"variants":{"outline":"f07d"}},"temperature-celsius":{"name":"temperature-celsius","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb36"}},"temperature-fahrenheit":{"name":"temperature-fahrenheit","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb37"}},"temperature-minus":{"name":"temperature-minus","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"ebed"}},"temperature-off":{"name":"temperature-off","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"f1af"}},"temperature-plus":{"name":"temperature-plus","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"ebee"}},"temperature-snow":{"name":"temperature-snow","category":"","tags":[],"variants":{"outline":"fda3"}},"temperature-sun":{"name":"temperature-sun","category":"","tags":[],"variants":{"outline":"fda4"}},"temperature":{"name":"temperature","category":"Weather","tags":["weather","celcius","fahrenheit","cold","hot"],"variants":{"outline":"eb38"}},"template-off":{"name":"template-off","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"f1b0"}},"template":{"name":"template","category":"Design","tags":["grid","columns","masonry","collage"],"variants":{"outline":"eb39"}},"tent-off":{"name":"tent-off","category":"Map","tags":["camping","holiday","vacation","outdoor","survival","travel","adventure"],"variants":{"outline":"f435"}},"tent":{"name":"tent","category":"Map","tags":["camping","holiday","vacation","outdoor","survival","travel","adventure"],"variants":{"outline":"eefb"}},"terminal-2":{"name":"terminal-2","category":"","tags":["console","command","git","command line","command prompt"],"variants":{"outline":"ebef"}},"terminal":{"name":"terminal","category":"","tags":["console","command","git","command line","command prompt"],"variants":{"outline":"ebdc"}},"test-pipe-2":{"name":"test-pipe-2","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f0a4","filled":"ff53"}},"test-pipe-off":{"name":"test-pipe-off","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"f1b1"}},"test-pipe":{"name":"test-pipe","category":"","tags":["sample","color","flask","liquid","container","glass","chemistry","test","laboratory","experimental","beta"],"variants":{"outline":"eb3a"}},"tex":{"name":"tex","category":"Text","tags":["file","document","type","format","filetype"],"variants":{"outline":"f4e0"}},"text-caption":{"name":"text-caption","category":"Text","tags":["document","file","lettering","image","picture"],"variants":{"outline":"f4a4"}},"text-color":{"name":"text-color","category":"Text","tags":["format","document","file","edit"],"variants":{"outline":"f2dc"}},"text-decrease":{"name":"text-decrease","category":"Text","tags":["indent","minimalize","smaller","editor","size","edit"],"variants":{"outline":"f202"}},"text-direction-ltr":{"name":"text-direction-ltr","category":"Text","tags":["left","right","bidi"],"variants":{"outline":"eefc"}},"text-direction-rtl":{"name":"text-direction-rtl","category":"Text","tags":["left","right","bidi"],"variants":{"outline":"eefd"}},"text-grammar":{"name":"text-grammar","category":"","tags":[],"variants":{"outline":"fd6d"}},"text-increase":{"name":"text-increase","category":"Text","tags":["expand","margin","size","editor","edit"],"variants":{"outline":"f203"}},"text-orientation":{"name":"text-orientation","category":"Text","tags":["aglinment","file","document","edit","right"],"variants":{"outline":"f2a4"}},"text-plus":{"name":"text-plus","category":"Text","tags":["add","new","document","file","edit"],"variants":{"outline":"f2a5"}},"text-recognition":{"name":"text-recognition","category":"Text","tags":["language","processing","detection"],"variants":{"outline":"f204"}},"text-resize":{"name":"text-resize","category":"Design","tags":["edit","editor","scale","font","bigger","smaller"],"variants":{"outline":"ef87"}},"text-scan-2":{"name":"text-scan-2","category":"","tags":[],"variants":{"outline":"fcc3"}},"text-size":{"name":"text-size","category":"Text","tags":["font","edit","document","type","letter"],"variants":{"outline":"f2b1"}},"text-spellcheck":{"name":"text-spellcheck","category":"Text","tags":["grammar","spelling","ortography"],"variants":{"outline":"f2a6"}},"text-wrap-column":{"name":"text-wrap-column","category":"Text","tags":["wrap","column","text","typography","writing"],"variants":{"outline":"feb2"}},"text-wrap-disabled":{"name":"text-wrap-disabled","category":"Text","tags":["text","alignment","position"],"variants":{"outline":"eca7"}},"text-wrap":{"name":"text-wrap","category":"Text","tags":["wrap","column","text","typography","writing"],"variants":{"outline":"ebdd"}},"texture":{"name":"texture","category":"","tags":["pattern","abstract","decoration","background","fashion"],"variants":{"outline":"f51b"}},"theater":{"name":"theater","category":"Map","tags":["movie","film","show","mask","entertainment"],"variants":{"outline":"f79b"}},"thermometer":{"name":"thermometer","category":"Health","tags":["temperature","hot","cold","weather","medical","fever","celsius"],"variants":{"outline":"ef67"}},"thumb-down-off":{"name":"thumb-down-off","category":"System","tags":["dislike","bad","emotion"],"variants":{"outline":"f436"}},"thumb-down":{"name":"thumb-down","category":"System","tags":["dislike","bad","emotion"],"variants":{"outline":"eb3b","filled":"f6aa"}},"thumb-up-off":{"name":"thumb-up-off","category":"System","tags":["like","emotion","good","love"],"variants":{"outline":"f437"}},"thumb-up":{"name":"thumb-up","category":"System","tags":["like","emotion","good","love"],"variants":{"outline":"eb3c","filled":"f6ab"}},"tic-tac":{"name":"tic-tac","category":"Sport","tags":["toe","game","strategy","cross","circle"],"variants":{"outline":"f51c"}},"ticket-off":{"name":"ticket-off","category":"","tags":["cinema","event","theatre","entry","fine","coupon","pass"],"variants":{"outline":"f1b2"}},"ticket":{"name":"ticket","category":"","tags":["cinema","event","theatre","entry","fine","coupon","pass"],"variants":{"outline":"eb3d"}},"tie":{"name":"tie","category":"","tags":["suit","buisness","fashion","clothes","accessory","clothing"],"variants":{"outline":"f07e"}},"tilde":{"name":"tilde","category":"","tags":["key","sign","about","rounding","math"],"variants":{"outline":"f4a5"}},"tilt-shift-off":{"name":"tilt-shift-off","category":"Photography","tags":["filter","shift","photography","photo"],"variants":{"outline":"f1b3"}},"tilt-shift":{"name":"tilt-shift","category":"Photography","tags":["filter","shift","photography","photo"],"variants":{"outline":"eefe","filled":"fec7"}},"time-duration-0":{"name":"time-duration-0","category":"System","tags":[],"variants":{"outline":"fad4"}},"time-duration-10":{"name":"time-duration-10","category":"System","tags":[],"variants":{"outline":"fad5"}},"time-duration-15":{"name":"time-duration-15","category":"System","tags":[],"variants":{"outline":"fad6"}},"time-duration-30":{"name":"time-duration-30","category":"System","tags":[],"variants":{"outline":"fad7"}},"time-duration-45":{"name":"time-duration-45","category":"System","tags":[],"variants":{"outline":"fad8"}},"time-duration-5":{"name":"time-duration-5","category":"System","tags":[],"variants":{"outline":"fad9"}},"time-duration-60":{"name":"time-duration-60","category":"System","tags":[],"variants":{"outline":"fada"}},"time-duration-90":{"name":"time-duration-90","category":"System","tags":[],"variants":{"outline":"fadb"}},"time-duration-off":{"name":"time-duration-off","category":"System","tags":[],"variants":{"outline":"fadc"}},"timeline-event-exclamation":{"name":"timeline-event-exclamation","category":"Development","tags":["calendar","schedule","date","error","warring"],"variants":{"outline":"f662"}},"timeline-event-minus":{"name":"timeline-event-minus","category":"Development","tags":["calendar","schedule","date","delete","remove"],"variants":{"outline":"f663"}},"timeline-event-plus":{"name":"timeline-event-plus","category":"Development","tags":["calendar","schedule","date","add","new"],"variants":{"outline":"f664"}},"timeline-event-text":{"name":"timeline-event-text","category":"Development","tags":["calendar","schedule","date","message","chat"],"variants":{"outline":"f665"}},"timeline-event-x":{"name":"timeline-event-x","category":"Development","tags":["calendar","schedule","date","remove","cross","delete"],"variants":{"outline":"f666"}},"timeline-event":{"name":"timeline-event","category":"Development","tags":["process","plan","planning","diagram","chart","roadmap"],"variants":{"outline":"f553","filled":"fd18"}},"timeline":{"name":"timeline","category":"","tags":["process","plan","planning","diagram","chart","roadmap"],"variants":{"outline":"f031"}},"timezone":{"name":"timezone","category":"","tags":[],"variants":{"outline":"feed"}},"tip-jar-euro":{"name":"tip-jar-euro","category":"","tags":[],"variants":{"outline":"feec"}},"tip-jar-pound":{"name":"tip-jar-pound","category":"","tags":[],"variants":{"outline":"feeb"}},"tip-jar":{"name":"tip-jar","category":"","tags":[],"variants":{"outline":"feea"}},"tir":{"name":"tir","category":"Vehicles","tags":["delivery","transportation","transport","logistics","vehicle","goods"],"variants":{"outline":"ebf0"}},"toggle-left":{"name":"toggle-left","category":"System","tags":["on","off","switch"],"variants":{"outline":"eb3e","filled":"fec0"}},"toggle-right":{"name":"toggle-right","category":"System","tags":["on","off","switch"],"variants":{"outline":"eb3f","filled":"febf"}},"toilet-paper-off":{"name":"toilet-paper-off","category":"","tags":["bathroom","hygiene","wc","cleaning","rubbing"],"variants":{"outline":"f1b4"}},"toilet-paper":{"name":"toilet-paper","category":"","tags":["bathroom","hygiene","wc","cleaning","rubbing"],"variants":{"outline":"efd3"}},"toml":{"name":"toml","category":"Extensions","tags":[],"variants":{"outline":"fa5d"}},"tool":{"name":"tool","category":"System","tags":["preferences","edit","settings"],"variants":{"outline":"eb40"}},"tools-kitchen-2-off":{"name":"tools-kitchen-2-off","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"f1b5"}},"tools-kitchen-2":{"name":"tools-kitchen-2","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"eeff"}},"tools-kitchen-3":{"name":"tools-kitchen-3","category":"","tags":[],"variants":{"outline":"fd2b"}},"tools-kitchen-off":{"name":"tools-kitchen-off","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"f1b6"}},"tools-kitchen":{"name":"tools-kitchen","category":"Map","tags":["knife","fork","spoon","cutlery","eat","restaurant","menu","cafe","cook","cut","soup","dinner","breakfast","dining","plate","dish"],"variants":{"outline":"ed64"}},"tools-off":{"name":"tools-off","category":"Design","tags":["preferences","edit","settings"],"variants":{"outline":"f1b7"}},"tools":{"name":"tools","category":"Design","tags":["preferences","edit","settings"],"variants":{"outline":"ebca"}},"tooltip":{"name":"tooltip","category":"System","tags":["info","help","information","advise"],"variants":{"outline":"f2dd"}},"topology-bus":{"name":"topology-bus","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5d9"}},"topology-complex":{"name":"topology-complex","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5da"}},"topology-full-hierarchy":{"name":"topology-full-hierarchy","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5db"}},"topology-full":{"name":"topology-full","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5dc"}},"topology-ring-2":{"name":"topology-ring-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5dd"}},"topology-ring-3":{"name":"topology-ring-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5de"}},"topology-ring":{"name":"topology-ring","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5df"}},"topology-star-2":{"name":"topology-star-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e0"}},"topology-star-3":{"name":"topology-star-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e1"}},"topology-star-ring-2":{"name":"topology-star-ring-2","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e2"}},"topology-star-ring-3":{"name":"topology-star-ring-3","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e3"}},"topology-star-ring":{"name":"topology-star-ring","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e4"}},"topology-star":{"name":"topology-star","category":"Computers","tags":["hierarchy","network","structure","connection"],"variants":{"outline":"f5e5"}},"torii":{"name":"torii","category":"Symbols","tags":["japan","gate","asia","building","monument"],"variants":{"outline":"f59b"}},"tornado":{"name":"tornado","category":"Weather","tags":["wind","rotate","storm","spin","spinning","air","catastrophe","vortex"],"variants":{"outline":"ece2"}},"tournament":{"name":"tournament","category":"Sport","tags":["competition","competitor","sport","game","play","champion"],"variants":{"outline":"ecd0"}},"tower-off":{"name":"tower-off","category":"Buildings","tags":["building","castle","fortress","palace"],"variants":{"outline":"f2ca"}},"tower":{"name":"tower","category":"Buildings","tags":["building","castle","fortress","palace"],"variants":{"outline":"f2cb"}},"track":{"name":"track","category":"Vehicles","tags":["trail","path","route","train","railway","railroad"],"variants":{"outline":"ef00"}},"tractor":{"name":"tractor","category":"Vehicles","tags":["countryside","vehicle","harvest","machine","motor","farm","trailer"],"variants":{"outline":"ec0d"}},"trademark":{"name":"trademark","category":"Symbols","tags":["legal","product","company","own","ownership","brand","law","right","certificate"],"variants":{"outline":"ec0e"}},"traffic-cone-off":{"name":"traffic-cone-off","category":"Map","tags":["street","road","vehicle","repair","warning","lane","drive"],"variants":{"outline":"f1b8"}},"traffic-cone":{"name":"traffic-cone","category":"Map","tags":["street","road","vehicle","repair","warning","lane","drive"],"variants":{"outline":"ec0f"}},"traffic-lights-off":{"name":"traffic-lights-off","category":"Map","tags":["street","road","green","red","yellow","vehicle","stop","drive","crossing","pedestrian","crossroads","junction","intersection"],"variants":{"outline":"f1b9"}},"traffic-lights":{"name":"traffic-lights","category":"Map","tags":["street","road","green","red","yellow","vehicle","stop","drive","crossing","pedestrian","crossroads","junction","intersection"],"variants":{"outline":"ed39"}},"train":{"name":"train","category":"Vehicles","tags":["railway","rails","tgv","journey","travel","network","route","passenger"],"variants":{"outline":"ed96"}},"transaction-bitcoin":{"name":"transaction-bitcoin","category":"","tags":[],"variants":{"outline":"fd6e"}},"transaction-dollar":{"name":"transaction-dollar","category":"E-commerce","tags":[],"variants":{"outline":"fd6f"}},"transaction-euro":{"name":"transaction-euro","category":"E-commerce","tags":[],"variants":{"outline":"fd70"}},"transaction-pound":{"name":"transaction-pound","category":"E-commerce","tags":[],"variants":{"outline":"fd71"}},"transaction-rupee":{"name":"transaction-rupee","category":"","tags":[],"variants":{"outline":"fd85"}},"transaction-yen":{"name":"transaction-yen","category":"E-commerce","tags":[],"variants":{"outline":"fd72"}},"transaction-yuan":{"name":"transaction-yuan","category":"E-commerce","tags":[],"variants":{"outline":"fd73"}},"transfer-in":{"name":"transfer-in","category":"E-commerce","tags":["input","insert","import","send"],"variants":{"outline":"ef2f"}},"transfer-out":{"name":"transfer-out","category":"E-commerce","tags":["output","export","send"],"variants":{"outline":"ef30"}},"transfer-vertical":{"name":"transfer-vertical","category":"","tags":[],"variants":{"outline":"fc1e"}},"transfer":{"name":"transfer","category":"","tags":[],"variants":{"outline":"fc1f"}},"transform-point-bottom-left":{"name":"transform-point-bottom-left","category":"","tags":[],"variants":{"outline":"fda5"}},"transform-point-bottom-right":{"name":"transform-point-bottom-right","category":"","tags":[],"variants":{"outline":"fda6"}},"transform-point-top-left":{"name":"transform-point-top-left","category":"","tags":[],"variants":{"outline":"fda7"}},"transform-point-top-right":{"name":"transform-point-top-right","category":"","tags":[],"variants":{"outline":"fda8"}},"transform-point":{"name":"transform-point","category":"","tags":[],"variants":{"outline":"fda9"}},"transform":{"name":"transform","category":"","tags":["change","convert","adaptation","direction"],"variants":{"outline":"f38e","filled":"f6ac"}},"transition-bottom":{"name":"transition-bottom","category":"Arrows","tags":["direction","south","down","moving"],"variants":{"outline":"f2b2","filled":"fdd0"}},"transition-left":{"name":"transition-left","category":"Arrows","tags":["direction","west","moving"],"variants":{"outline":"f2b3","filled":"fdcf"}},"transition-right":{"name":"transition-right","category":"Arrows","tags":["direction","east","moving"],"variants":{"outline":"f2b4","filled":"fdce"}},"transition-top":{"name":"transition-top","category":"Arrows","tags":["direction","north","up","moving"],"variants":{"outline":"f2b5","filled":"fdcd"}},"trash-off":{"name":"trash-off","category":"System","tags":["garbage","delete","remove","bin","ash-bin","uninstall","dustbin"],"variants":{"outline":"ed65"}},"trash-x":{"name":"trash-x","category":"System","tags":["bin","litter","recycle","remove","delete","throw","away","waste"],"variants":{"outline":"ef88","filled":"f784"}},"trash":{"name":"trash","category":"System","tags":["garbage","delete","remove","bin","ash-bin","uninstall","dustbin"],"variants":{"outline":"eb41","filled":"f783"}},"treadmill":{"name":"treadmill","category":"Sport","tags":[],"variants":{"outline":"fa6e"}},"tree":{"name":"tree","category":"Map","tags":["nature","greenery","park","leaf","trunk","stem","root","forest","garden"],"variants":{"outline":"ef01"}},"trees":{"name":"trees","category":"Map","tags":["nature","greenery","park","leaf","trunk","stem","root","forest","garden"],"variants":{"outline":"ec10"}},"trekking":{"name":"trekking","category":"Sport","tags":["adventure","travel","walking","hiking","activity"],"variants":{"outline":"f5ad"}},"trending-down-2":{"name":"trending-down-2","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"edc1"}},"trending-down-3":{"name":"trending-down-3","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"edc2"}},"trending-down":{"name":"trending-down","category":"Arrows","tags":["arrow","decrease","fall","progress"],"variants":{"outline":"eb42"}},"trending-up-2":{"name":"trending-up-2","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"edc3"}},"trending-up-3":{"name":"trending-up-3","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"edc4"}},"trending-up":{"name":"trending-up","category":"Arrows","tags":["arrow","grow","increase","progress"],"variants":{"outline":"eb43"}},"triangle-inverted":{"name":"triangle-inverted","category":"Shapes","tags":["shape","geometry","geometric","graphic","pyramid","design"],"variants":{"outline":"f01d","filled":"f6ae"}},"triangle-minus-2":{"name":"triangle-minus-2","category":"Shapes","tags":[],"variants":{"outline":"fc9a"}},"triangle-minus":{"name":"triangle-minus","category":"Shapes","tags":[],"variants":{"outline":"fc9b"}},"triangle-off":{"name":"triangle-off","category":"Shapes","tags":["delta","shape"],"variants":{"outline":"ef02"}},"triangle-plus-2":{"name":"triangle-plus-2","category":"Shapes","tags":[],"variants":{"outline":"fc9c"}},"triangle-plus":{"name":"triangle-plus","category":"Shapes","tags":[],"variants":{"outline":"fc9d"}},"triangle-square-circle":{"name":"triangle-square-circle","category":"Shapes","tags":["shape","geometry","round","angle"],"variants":{"outline":"ece8","filled":"fb42"}},"triangle":{"name":"triangle","category":"Shapes","tags":["delta","shape"],"variants":{"outline":"eb44","filled":"f6ad"}},"triangles":{"name":"triangles","category":"Shapes","tags":["shapes","figure","geometry","geometric","pyramid","design"],"variants":{"outline":"f0a5"}},"trident":{"name":"trident","category":"","tags":["three","spear","weapon","sharp","tool"],"variants":{"outline":"ecc5"}},"trolley":{"name":"trolley","category":"Vehicles","tags":["shopping","market","shop","delivery"],"variants":{"outline":"f4cc"}},"trophy-off":{"name":"trophy-off","category":"","tags":["success","win","prize","winner"],"variants":{"outline":"f438"}},"trophy":{"name":"trophy","category":"","tags":["success","win","prize","winner"],"variants":{"outline":"eb45","filled":"f6af"}},"trowel":{"name":"trowel","category":"","tags":["tool","garden","equipment","mason","cement"],"variants":{"outline":"f368"}},"truck-delivery":{"name":"truck-delivery","category":"E-commerce","tags":["order","purchase","online","shop","store","e-commerce","lorry"],"variants":{"outline":"ec4b"}},"truck-loading":{"name":"truck-loading","category":"E-commerce","tags":["transport","delivery","logistics","vehicle"],"variants":{"outline":"f1da"}},"truck-off":{"name":"truck-off","category":"Vehicles","tags":["transport","vahicle","van","lorry","cargo","delivery"],"variants":{"outline":"ef03"}},"truck-return":{"name":"truck-return","category":"E-commerce","tags":["order","purchase","online","shop","store","e-commerce","lorry"],"variants":{"outline":"ec4c"}},"truck":{"name":"truck","category":"Vehicles","tags":["transport","vahicle","van","lorry","cargo","delivery"],"variants":{"outline":"ebc4"}},"txt":{"name":"txt","category":"Extensions","tags":["file","format","type","document","filetype"],"variants":{"outline":"f3b1"}},"typeface":{"name":"typeface","category":"","tags":[],"variants":{"outline":"fdab"}},"typography-off":{"name":"typography-off","category":"Text","tags":["type","display","typeface","point size","line length","line-spacing","letter-spacing","font"],"variants":{"outline":"f1ba"}},"typography":{"name":"typography","category":"Text","tags":["type","display","typeface","point size","line length","line-spacing","letter-spacing","font"],"variants":{"outline":"ebc5"}},"u-turn-left":{"name":"u-turn-left","category":"Arrows","tags":[],"variants":{"outline":"fea2"}},"u-turn-right":{"name":"u-turn-right","category":"Arrows","tags":[],"variants":{"outline":"fea1"}},"ufo-off":{"name":"ufo-off","category":"","tags":["alien","space","astronomy","spaceship","galaxy"],"variants":{"outline":"f26e"}},"ufo":{"name":"ufo","category":"","tags":["alien","space","astronomy","spaceship","galaxy"],"variants":{"outline":"f26f"}},"umbrella-2":{"name":"umbrella-2","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ff0e"}},"umbrella-closed-2":{"name":"umbrella-closed-2","category":"","tags":[],"variants":{"outline":"ff0d"}},"umbrella-closed":{"name":"umbrella-closed","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ff0c"}},"umbrella-off":{"name":"umbrella-off","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"f1bb"}},"umbrella":{"name":"umbrella","category":"","tags":["rain","weather","storm","wet","autumn","fall"],"variants":{"outline":"ebf1","filled":"f6b0"}},"underline":{"name":"underline","category":"Text","tags":["underscore","emphasis","horizontal","typography"],"variants":{"outline":"eba2"}},"universe":{"name":"universe","category":"","tags":[],"variants":{"outline":"fcc4"}},"unlink":{"name":"unlink","category":"Text","tags":["chain","url","address","remove","broke","unconnect"],"variants":{"outline":"eb46"}},"upload":{"name":"upload","category":"Arrows","tags":["file","arrow"],"variants":{"outline":"eb47"}},"urgent":{"name":"urgent","category":"","tags":["alert","important"],"variants":{"outline":"eb48"}},"usb":{"name":"usb","category":"","tags":["drive","cable","plug","device","technology","connect"],"variants":{"outline":"f00c"}},"user-bitcoin":{"name":"user-bitcoin","category":"","tags":[],"variants":{"outline":"ff30"}},"user-bolt":{"name":"user-bolt","category":"System","tags":[],"variants":{"outline":"f9d1"}},"user-cancel":{"name":"user-cancel","category":"System","tags":[],"variants":{"outline":"f9d2"}},"user-check":{"name":"user-check","category":"System","tags":["tick","person","account","role"],"variants":{"outline":"eb49"}},"user-circle":{"name":"user-circle","category":"System","tags":["account","avatar","profile","role"],"variants":{"outline":"ef68"}},"user-code":{"name":"user-code","category":"System","tags":[],"variants":{"outline":"f9d3"}},"user-cog":{"name":"user-cog","category":"System","tags":[],"variants":{"outline":"f9d4"}},"user-dollar":{"name":"user-dollar","category":"System","tags":[],"variants":{"outline":"f9d5"}},"user-down":{"name":"user-down","category":"System","tags":[],"variants":{"outline":"f9d6"}},"user-edit":{"name":"user-edit","category":"System","tags":[],"variants":{"outline":"f7cc"}},"user-exclamation":{"name":"user-exclamation","category":"System","tags":["user","account","note","excitement","admiration","mark"],"variants":{"outline":"ec12"}},"user-heart":{"name":"user-heart","category":"System","tags":[],"variants":{"outline":"f7cd"}},"user-hexagon":{"name":"user-hexagon","category":"","tags":[],"variants":{"outline":"fc4e"}},"user-minus":{"name":"user-minus","category":"System","tags":["remove","cancel","person","account","unsubscribe","role"],"variants":{"outline":"eb4a"}},"user-off":{"name":"user-off","category":"System","tags":["person","account"],"variants":{"outline":"ecf9"}},"user-pause":{"name":"user-pause","category":"System","tags":[],"variants":{"outline":"f9d7"}},"user-pentagon":{"name":"user-pentagon","category":"","tags":[],"variants":{"outline":"fc4f"}},"user-pin":{"name":"user-pin","category":"System","tags":[],"variants":{"outline":"f7ce"}},"user-plus":{"name":"user-plus","category":"System","tags":["add","create","new","person","people","follow","subscribe","role"],"variants":{"outline":"eb4b"}},"user-question":{"name":"user-question","category":"System","tags":[],"variants":{"outline":"f7cf"}},"user-scan":{"name":"user-scan","category":"System","tags":["identity","biometric","authentication","recognition","profile","verification","user-data","user-profile","scan-identity","identity-verification"],"variants":{"outline":"fcaf"}},"user-screen":{"name":"user-screen","category":"Media","tags":[],"variants":{"outline":"fea0"}},"user-search":{"name":"user-search","category":"System","tags":["find","account","profile","magnifier"],"variants":{"outline":"ef89"}},"user-share":{"name":"user-share","category":"System","tags":[],"variants":{"outline":"f9d8"}},"user-shield":{"name":"user-shield","category":"System","tags":[],"variants":{"outline":"f7d0"}},"user-square-rounded":{"name":"user-square-rounded","category":"","tags":[],"variants":{"outline":"fc50"}},"user-square":{"name":"user-square","category":"","tags":[],"variants":{"outline":"fc51"}},"user-star":{"name":"user-star","category":"System","tags":[],"variants":{"outline":"f7d1"}},"user-up":{"name":"user-up","category":"System","tags":[],"variants":{"outline":"f7d2"}},"user-x":{"name":"user-x","category":"System","tags":["cancel","remove","person","account","unsubscribe"],"variants":{"outline":"eb4c"}},"user":{"name":"user","category":"System","tags":["person","account"],"variants":{"outline":"eb4d","filled":"fd19"}},"users-group":{"name":"users-group","category":"System","tags":[],"variants":{"outline":"fa21"}},"users-minus":{"name":"users-minus","category":"System","tags":[],"variants":{"outline":"fa0e"}},"users-plus":{"name":"users-plus","category":"System","tags":[],"variants":{"outline":"fa0f"}},"users":{"name":"users","category":"System","tags":["people","persons","accounts"],"variants":{"outline":"ebf2"}},"uv-index":{"name":"uv-index","category":"Weather","tags":["sun","ultraviolet","radiation"],"variants":{"outline":"f3b2"}},"ux-circle":{"name":"ux-circle","category":"Design","tags":["user","experience"],"variants":{"outline":"f369"}},"vaccine-bottle-off":{"name":"vaccine-bottle-off","category":"Health","tags":["medical","medicine","pharmacy","covid","virus","drug"],"variants":{"outline":"f439"}},"vaccine-bottle":{"name":"vaccine-bottle","category":"Health","tags":["medical","medicine","pharmacy","covid","virus","drug"],"variants":{"outline":"ef69"}},"vaccine-off":{"name":"vaccine-off","category":"Health","tags":["illness","sickness","disease","injection","medicine","medical","doctor","nurse"],"variants":{"outline":"f1bc"}},"vaccine":{"name":"vaccine","category":"Health","tags":["illness","sickness","disease","injection","medicine","medical","doctor","nurse"],"variants":{"outline":"ef04"}},"vacuum-cleaner":{"name":"vacuum-cleaner","category":"","tags":["robot","clean","hoover","home","electronics"],"variants":{"outline":"f5e6"}},"variable-minus":{"name":"variable-minus","category":"Math","tags":["off","delete","maths","mathematics","science","calculate","function"],"variants":{"outline":"f36a"}},"variable-off":{"name":"variable-off","category":"Math","tags":["maths","mathematics","science","calculate","function"],"variants":{"outline":"f1bd"}},"variable-plus":{"name":"variable-plus","category":"Math","tags":["add","new","maths","mathematics","science","calculate","function"],"variants":{"outline":"f36b"}},"variable":{"name":"variable","category":"Math","tags":["maths","mathematics","science","calculate","function"],"variants":{"outline":"ef05"}},"vector-bezier-2":{"name":"vector-bezier-2","category":"Design","tags":["curve","parametric","design","vector graphics","representation"],"variants":{"outline":"f1a3"}},"vector-bezier-arc":{"name":"vector-bezier-arc","category":"Design","tags":["curve","drafting","reshape","shape"],"variants":{"outline":"f4cd"}},"vector-bezier-circle":{"name":"vector-bezier-circle","category":"Design","tags":["curve","drafting","reshape","shape"],"variants":{"outline":"f4ce"}},"vector-bezier":{"name":"vector-bezier","category":"Design","tags":["curve","parametric","design","vector graphics","representation"],"variants":{"outline":"ef1d"}},"vector-off":{"name":"vector-off","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"f1be"}},"vector-spline":{"name":"vector-spline","category":"Design","tags":["math","line","curve","geometry"],"variants":{"outline":"f565"}},"vector-triangle-off":{"name":"vector-triangle-off","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"f1bf"}},"vector-triangle":{"name":"vector-triangle","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"eca8"}},"vector":{"name":"vector","category":"Design","tags":["curve","parametric","design","vector graphics","placement"],"variants":{"outline":"eca9"}},"venus":{"name":"venus","category":"Symbols","tags":["female"],"variants":{"outline":"ec86"}},"versions-off":{"name":"versions-off","category":"Development","tags":["app","variation","different","variant","alternative"],"variants":{"outline":"f1c0"}},"versions":{"name":"versions","category":"Development","tags":["app","variation","different","variant","alternative"],"variants":{"outline":"ed52","filled":"f6b1"}},"video-minus":{"name":"video-minus","category":"Media","tags":["film","shoot","recording","taping","camera","remotion"],"variants":{"outline":"ed1f"}},"video-off":{"name":"video-off","category":"Media","tags":["film","shoot","recording","taping","camera"],"variants":{"outline":"ed20"}},"video-plus":{"name":"video-plus","category":"Media","tags":["film","shoot","recording","taping","camera","closeup"],"variants":{"outline":"ed21"}},"video":{"name":"video","category":"Media","tags":["film","shoot","recording","taping","camera"],"variants":{"outline":"ed22"}},"view-360-arrow":{"name":"view-360-arrow","category":"","tags":["rotate","view","degree","virtual","vr"],"variants":{"outline":"f62f"}},"view-360-number":{"name":"view-360-number","category":"","tags":["degree","rotation","reality","camera"],"variants":{"outline":"f566"}},"view-360-off":{"name":"view-360-off","category":"","tags":["panoramic","degrees","image","around"],"variants":{"outline":"f1c1"}},"view-360":{"name":"view-360","category":"","tags":["panoramic","degrees","image","around"],"variants":{"outline":"ed84"}},"viewfinder-off":{"name":"viewfinder-off","category":"Map","tags":["target","aim","focus"],"variants":{"outline":"f1c2"}},"viewfinder":{"name":"viewfinder","category":"Map","tags":["target","aim","focus"],"variants":{"outline":"eb4e"}},"viewport-narrow":{"name":"viewport-narrow","category":"Devices","tags":["data","account","excel","tight"],"variants":{"outline":"ebf3"}},"viewport-short":{"name":"viewport-short","category":"","tags":[],"variants":{"outline":"fee9"}},"viewport-tall":{"name":"viewport-tall","category":"","tags":[],"variants":{"outline":"fee8"}},"viewport-wide":{"name":"viewport-wide","category":"Devices","tags":["data","account","broad","excel"],"variants":{"outline":"ebf4"}},"vinyl":{"name":"vinyl","category":"Devices","tags":["music","audio","dj","sound","retro","musical"],"variants":{"outline":"f00d"}},"vip-off":{"name":"vip-off","category":"","tags":["premium","exclusive","staff","expensive"],"variants":{"outline":"f43a"}},"vip":{"name":"vip","category":"","tags":["premium","exclusive","staff","expensive"],"variants":{"outline":"f3b3"}},"virus-off":{"name":"virus-off","category":"Health","tags":["infection","illness","cell","infectious","health"],"variants":{"outline":"ed66"}},"virus-search":{"name":"virus-search","category":"Health","tags":["covid","coronavirus","biology","infection","infected","cell","viral","infectious","disease"],"variants":{"outline":"ed67"}},"virus":{"name":"virus","category":"Health","tags":["infection","illness","cell","infectious","health"],"variants":{"outline":"eb74"}},"vocabulary-off":{"name":"vocabulary-off","category":"Text","tags":["language","traffic","text","book","study","dictionary"],"variants":{"outline":"f43b"}},"vocabulary":{"name":"vocabulary","category":"Text","tags":["language","traffic","text","book","study","dictionary"],"variants":{"outline":"ef1e"}},"volcano":{"name":"volcano","category":"Map","tags":["erumption","lava","nature","danger","explosion"],"variants":{"outline":"f79c"}},"volume-2":{"name":"volume-2","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"eb4f"}},"volume-3":{"name":"volume-3","category":"Media","tags":["mute","music","sound","off","speaker"],"variants":{"outline":"eb50"}},"volume-off":{"name":"volume-off","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"f1c3"}},"volume":{"name":"volume","category":"Media","tags":["music","sound","speaker"],"variants":{"outline":"eb51"}},"vs":{"name":"vs","category":"","tags":[],"variants":{"outline":"fc52"}},"walk":{"name":"walk","category":"Sport","tags":["ambulation","dislocating","movement","motion","destination"],"variants":{"outline":"ec87"}},"wall-off":{"name":"wall-off","category":"","tags":["brick","security","firewall","building","renovation","construction"],"variants":{"outline":"f43c"}},"wall":{"name":"wall","category":"","tags":["brick","security","firewall","building","renovation","construction"],"variants":{"outline":"ef7a"}},"wallet-off":{"name":"wallet-off","category":"","tags":["money","pay","banknote","coin","payment","bank"],"variants":{"outline":"f1c4"}},"wallet":{"name":"wallet","category":"","tags":["money","pay","banknote","coin","payment","bank"],"variants":{"outline":"eb75"}},"wallpaper-off":{"name":"wallpaper-off","category":"","tags":["picture","image","photo","decoration","house","room","decor"],"variants":{"outline":"f1c5"}},"wallpaper":{"name":"wallpaper","category":"","tags":["picture","image","photo","decoration","house","room","decor"],"variants":{"outline":"ef56"}},"wand-off":{"name":"wand-off","category":"","tags":["magic","tool","color","pixel","design"],"variants":{"outline":"f1c6"}},"wand":{"name":"wand","category":"","tags":["magic","tool","color","pixel","design"],"variants":{"outline":"ebcb"}},"wash-dry-1":{"name":"wash-dry-1","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fa"}},"wash-dry-2":{"name":"wash-dry-2","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fb"}},"wash-dry-3":{"name":"wash-dry-3","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fc"}},"wash-dry-a":{"name":"wash-dry-a","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fd"}},"wash-dry-dip":{"name":"wash-dry-dip","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2fe"}},"wash-dry-f":{"name":"wash-dry-f","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f2ff"}},"wash-dry-flat":{"name":"wash-dry-flat","category":"Laundry","tags":[],"variants":{"outline":"fa7f"}},"wash-dry-hang":{"name":"wash-dry-hang","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f300"}},"wash-dry-off":{"name":"wash-dry-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f301"}},"wash-dry-p":{"name":"wash-dry-p","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f302"}},"wash-dry-shade":{"name":"wash-dry-shade","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f303"}},"wash-dry-w":{"name":"wash-dry-w","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f322"}},"wash-dry":{"name":"wash-dry","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f304"}},"wash-dryclean-off":{"name":"wash-dryclean-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f323"}},"wash-dryclean":{"name":"wash-dryclean","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f305"}},"wash-eco":{"name":"wash-eco","category":"Laundry","tags":[],"variants":{"outline":"fa80"}},"wash-gentle":{"name":"wash-gentle","category":"Laundry","tags":["laundry","clean","clear","clothes","machine","delicate"],"variants":{"outline":"f306"}},"wash-hand":{"name":"wash-hand","category":"Laundry","tags":[],"variants":{"outline":"fa81"}},"wash-machine":{"name":"wash-machine","category":"Devices","tags":["bathroom","clean","cleaning","laundry","machine","clothes"],"variants":{"outline":"f25e"}},"wash-off":{"name":"wash-off","category":"Laundry","tags":["clean","cleaning","hygiene","laundry","clothes"],"variants":{"outline":"f307"}},"wash-press":{"name":"wash-press","category":"Laundry","tags":["laundry","clean","clear","clothes","machine","permanent"],"variants":{"outline":"f308"}},"wash-temperature-1":{"name":"wash-temperature-1","category":"Laundry","tags":["laundry","clean","clear","clothes","low","cold"],"variants":{"outline":"f309"}},"wash-temperature-2":{"name":"wash-temperature-2","category":"Laundry","tags":["laundry","clean","clear","clothes","low","cold"],"variants":{"outline":"f30a"}},"wash-temperature-3":{"name":"wash-temperature-3","category":"Laundry","tags":["laundry","clean","clear","clothes","medium"],"variants":{"outline":"f30b"}},"wash-temperature-4":{"name":"wash-temperature-4","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30c"}},"wash-temperature-5":{"name":"wash-temperature-5","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30d"}},"wash-temperature-6":{"name":"wash-temperature-6","category":"Laundry","tags":["laundry","clean","clear","clothes","high","hot"],"variants":{"outline":"f30e"}},"wash-tumble-dry":{"name":"wash-tumble-dry","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f30f"}},"wash-tumble-off":{"name":"wash-tumble-off","category":"Laundry","tags":["laundry","clean","clear","clothes"],"variants":{"outline":"f310"}},"wash":{"name":"wash","category":"Laundry","tags":["clean","cleaning","hygiene","laundry","clothes"],"variants":{"outline":"f311"}},"waterpolo":{"name":"waterpolo","category":"Sport","tags":[],"variants":{"outline":"fa6f"}},"wave-saw-tool":{"name":"wave-saw-tool","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd3"}},"wave-sine":{"name":"wave-sine","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd4"}},"wave-square":{"name":"wave-square","category":"","tags":["pulse","signal","ratio","rate","volume"],"variants":{"outline":"ecd5"}},"waves-electricity":{"name":"waves-electricity","category":"","tags":[],"variants":{"outline":"fcc5"}},"webhook-off":{"name":"webhook-off","category":"Development","tags":["communication","interaction","comunity","browser"],"variants":{"outline":"f43d"}},"webhook":{"name":"webhook","category":"Development","tags":["communication","interaction","comunity","browser"],"variants":{"outline":"f01e"}},"weight":{"name":"weight","category":"","tags":["gym","fitness","balance","exercise","sport"],"variants":{"outline":"f589"}},"wheel":{"name":"wheel","category":"","tags":[],"variants":{"outline":"fc64"}},"wheelchair-off":{"name":"wheelchair-off","category":"Vehicles","tags":["disabled","disability","patient","medical","handicapped"],"variants":{"outline":"f43e"}},"wheelchair":{"name":"wheelchair","category":"Vehicles","tags":["disabled","disability","patient","medical","handicapped"],"variants":{"outline":"f1db"}},"whirl":{"name":"whirl","category":"Weather","tags":["cosmos","galaxy","space","spin","spiral","hypnosis"],"variants":{"outline":"f51d"}},"wifi-0":{"name":"wifi-0","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba3"}},"wifi-1":{"name":"wifi-1","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba4"}},"wifi-2":{"name":"wifi-2","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eba5"}},"wifi-off":{"name":"wifi-off","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"ecfa"}},"wifi":{"name":"wifi","category":"Devices","tags":["online","connection","signal","wireless"],"variants":{"outline":"eb52"}},"wind-electricity":{"name":"wind-electricity","category":"","tags":[],"variants":{"outline":"fcc6"}},"wind-off":{"name":"wind-off","category":"Weather","tags":["weather","breeze","tornado","typhoon","cyclone","hurricane"],"variants":{"outline":"f1c7"}},"wind":{"name":"wind","category":"Weather","tags":["weather","breeze","tornado","typhoon","cyclone","hurricane"],"variants":{"outline":"ec34"}},"windmill-off":{"name":"windmill-off","category":"Map","tags":["generate","power","blade","energy","electricity"],"variants":{"outline":"f1c8"}},"windmill":{"name":"windmill","category":"Map","tags":["generate","power","blade","energy","electricity"],"variants":{"outline":"ed85","filled":"f6b2"}},"window-maximize":{"name":"window-maximize","category":"System","tags":["fullscreen","browser","size","full","resize"],"variants":{"outline":"f1f1"}},"window-minimize":{"name":"window-minimize","category":"System","tags":["screen","browser","size","resize","minimum"],"variants":{"outline":"f1f2"}},"window-off":{"name":"window-off","category":"","tags":["house","view","glass","apartment","vehicle","light","frame","home","building"],"variants":{"outline":"f1c9"}},"window":{"name":"window","category":"","tags":["house","view","glass","apartment","vehicle","light","frame","home","building"],"variants":{"outline":"ef06"}},"windsock":{"name":"windsock","category":"Map","tags":["weather","meteorology","windy","storm","wind"],"variants":{"outline":"f06d"}},"wiper-wash":{"name":"wiper-wash","category":"Vehicles","tags":["car","pane","vehicle","sprinkler","scour"],"variants":{"outline":"ecaa"}},"wiper":{"name":"wiper","category":"Vehicles","tags":["car","pane","vehicle","sprinkler","scour"],"variants":{"outline":"ecab"}},"woman":{"name":"woman","category":"","tags":["girl","female","gender"],"variants":{"outline":"eb53","filled":"fdcc"}},"wood":{"name":"wood","category":"","tags":["tree","forest","natural","timber","log"],"variants":{"outline":"f359"}},"world-bolt":{"name":"world-bolt","category":"Map","tags":[],"variants":{"outline":"f9d9"}},"world-cancel":{"name":"world-cancel","category":"Map","tags":[],"variants":{"outline":"f9da"}},"world-check":{"name":"world-check","category":"Map","tags":[],"variants":{"outline":"f9db"}},"world-code":{"name":"world-code","category":"Map","tags":[],"variants":{"outline":"f9dc"}},"world-cog":{"name":"world-cog","category":"Map","tags":[],"variants":{"outline":"f9dd"}},"world-dollar":{"name":"world-dollar","category":"Map","tags":[],"variants":{"outline":"f9de"}},"world-down":{"name":"world-down","category":"Map","tags":[],"variants":{"outline":"f9df"}},"world-download":{"name":"world-download","category":"Map","tags":["global","down","globe","arrow","earth"],"variants":{"outline":"ef8a"}},"world-exclamation":{"name":"world-exclamation","category":"Map","tags":[],"variants":{"outline":"f9e0"}},"world-heart":{"name":"world-heart","category":"Map","tags":[],"variants":{"outline":"f9e1"}},"world-latitude":{"name":"world-latitude","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"ed2e"}},"world-longitude":{"name":"world-longitude","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"ed2f"}},"world-minus":{"name":"world-minus","category":"Map","tags":[],"variants":{"outline":"f9e2"}},"world-off":{"name":"world-off","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"f1ca"}},"world-pause":{"name":"world-pause","category":"Map","tags":[],"variants":{"outline":"f9e3"}},"world-pin":{"name":"world-pin","category":"Map","tags":[],"variants":{"outline":"f9e4"}},"world-plus":{"name":"world-plus","category":"Map","tags":[],"variants":{"outline":"f9e5"}},"world-question":{"name":"world-question","category":"Map","tags":[],"variants":{"outline":"f9e6"}},"world-search":{"name":"world-search","category":"Map","tags":[],"variants":{"outline":"f9e7"}},"world-share":{"name":"world-share","category":"Map","tags":[],"variants":{"outline":"f9e8"}},"world-star":{"name":"world-star","category":"Map","tags":[],"variants":{"outline":"f9e9"}},"world-up":{"name":"world-up","category":"Map","tags":[],"variants":{"outline":"f9ea"}},"world-upload":{"name":"world-upload","category":"Map","tags":["earth","global","up","globe","arrow","internet"],"variants":{"outline":"ef8b"}},"world-www":{"name":"world-www","category":"Map","tags":["internet","online","web","website","browser"],"variants":{"outline":"f38f"}},"world-x":{"name":"world-x","category":"Map","tags":[],"variants":{"outline":"f9eb"}},"world":{"name":"world","category":"Map","tags":["earth","globe","global","language","union"],"variants":{"outline":"eb54"}},"wrecking-ball":{"name":"wrecking-ball","category":"Vehicles","tags":["demolish","building","wrecker","metal","swing","knock","down"],"variants":{"outline":"ed97"}},"writing-off":{"name":"writing-off","category":"Text","tags":["name","certficate","sign","edit","write","document","pen","drawing","contract","signature"],"variants":{"outline":"f1cb"}},"writing-sign-off":{"name":"writing-sign-off","category":"Text","tags":["name","certficate","sign","edit","write","document","writing","pen"],"variants":{"outline":"f1cc"}},"writing-sign":{"name":"writing-sign","category":"Text","tags":["name","certficate","sign","edit","write","document","writing","pen"],"variants":{"outline":"ef07"}},"writing":{"name":"writing","category":"Text","tags":["name","certficate","sign","edit","write","document","pen","drawing","contract","signature"],"variants":{"outline":"ef08"}},"x":{"name":"x","category":"","tags":["cancel","remove","delete","empty","close"],"variants":{"outline":"eb55"}},"xbox-a":{"name":"xbox-a","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b6","filled":"fdcb"}},"xbox-b":{"name":"xbox-b","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b7","filled":"fdca"}},"xbox-x":{"name":"xbox-x","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b8","filled":"fdc9"}},"xbox-y":{"name":"xbox-y","category":"Devices","tags":["controller","joystick","button"],"variants":{"outline":"f2b9","filled":"fdc8"}},"xd":{"name":"xd","category":"","tags":[],"variants":{"outline":"fa33"}},"xxx":{"name":"xxx","category":"","tags":[],"variants":{"outline":"fc20"}},"yin-yang":{"name":"yin-yang","category":"Symbols","tags":["equality","good","evil","balance","peace"],"variants":{"outline":"ec35","filled":"f785"}},"yoga":{"name":"yoga","category":"Sport","tags":["pose","sport","meditation","fitness"],"variants":{"outline":"f01f"}},"zeppelin-off":{"name":"zeppelin-off","category":"Vehicles","tags":["airship","transport","ballon","flying","travel"],"variants":{"outline":"f43f"}},"zeppelin":{"name":"zeppelin","category":"Vehicles","tags":["airship","transport","ballon","flying","travel"],"variants":{"outline":"f270","filled":"fdc7"}},"zip":{"name":"zip","category":"Extensions","tags":["file","document","folder","compress","archive","filetype"],"variants":{"outline":"f3b4"}},"zodiac-aquarius":{"name":"zodiac-aquarius","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecac"}},"zodiac-aries":{"name":"zodiac-aries","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecad"}},"zodiac-cancer":{"name":"zodiac-cancer","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecae"}},"zodiac-capricorn":{"name":"zodiac-capricorn","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecaf"}},"zodiac-gemini":{"name":"zodiac-gemini","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb0"}},"zodiac-leo":{"name":"zodiac-leo","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb1"}},"zodiac-libra":{"name":"zodiac-libra","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb2"}},"zodiac-pisces":{"name":"zodiac-pisces","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb3"}},"zodiac-sagittarius":{"name":"zodiac-sagittarius","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb4"}},"zodiac-scorpio":{"name":"zodiac-scorpio","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb5"}},"zodiac-taurus":{"name":"zodiac-taurus","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb6"}},"zodiac-virgo":{"name":"zodiac-virgo","category":"Zodiac","tags":["sign","horoscope","constellation","stars"],"variants":{"outline":"ecb7"}},"zoom-cancel":{"name":"zoom-cancel","category":"Map","tags":["magnifying glass"],"variants":{"outline":"ec4d","filled":"fdc6"}},"zoom-check":{"name":"zoom-check","category":"Map","tags":["verify","magnifying","glass","magnifier","ok","done"],"variants":{"outline":"ef09","filled":"f786"}},"zoom-code":{"name":"zoom-code","category":"Map","tags":["inspect","marketing","search","markup","coding","magnifier"],"variants":{"outline":"f07f","filled":"fdc5"}},"zoom-exclamation":{"name":"zoom-exclamation","category":"Map","tags":["alert","caution","error","search","warning"],"variants":{"outline":"f080","filled":"fdc4"}},"zoom-in-area":{"name":"zoom-in-area","category":"Map","tags":["selected","square","magnifier","enlargement"],"variants":{"outline":"f1dc","filled":"f788"}},"zoom-in":{"name":"zoom-in","category":"Map","tags":["magnifying glass"],"variants":{"outline":"eb56","filled":"f789"}},"zoom-money":{"name":"zoom-money","category":"Map","tags":["magnifying","glass","magnifier","earn","pay","sum","total","finance","financial"],"variants":{"outline":"ef0a","filled":"fdc3"}},"zoom-out-area":{"name":"zoom-out-area","category":"Map","tags":["selected","square","magnifier","diminishing"],"variants":{"outline":"f1dd","filled":"fdc2"}},"zoom-out":{"name":"zoom-out","category":"Map","tags":["magnifying glass"],"variants":{"outline":"eb57","filled":"f78a"}},"zoom-pan":{"name":"zoom-pan","category":"Map","tags":["enlargement","shifting","magnifier"],"variants":{"outline":"f1de","filled":"fdc1"}},"zoom-question":{"name":"zoom-question","category":"Map","tags":["ask","help","support","cue","?"],"variants":{"outline":"edeb","filled":"fdc0"}},"zoom-replace":{"name":"zoom-replace","category":"Map","tags":["find","change","switch","swap"],"variants":{"outline":"f2a7"}},"zoom-reset":{"name":"zoom-reset","category":"Map","tags":["refresh","default","settings","vision"],"variants":{"outline":"f295"}},"zoom-scan":{"name":"zoom-scan","category":"System","tags":["magnify","enlarge","analyze","focus","enhance","view","magnification","zoom-in","scan-zoom","magnify-scan"],"variants":{"outline":"fcb0","filled":"fdbf"}},"zoom":{"name":"zoom","category":"","tags":["find","magnifier","magnifying glass"],"variants":{"outline":"fdaa","filled":"f787"}},"zzz-off":{"name":"zzz-off","category":"","tags":["sleep","sleeping","bed","dream","snooze","rest"],"variants":{"outline":"f440"}},"zzz":{"name":"zzz","category":"","tags":["sleep","sleeping","bed","dream","snooze","rest"],"variants":{"outline":"f228"}}} \ No newline at end of file diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf new file mode 100644 index 0000000000..24ccd00e9e Binary files /dev/null and b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.ttf differ diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff new file mode 100644 index 0000000000..e9a04839d5 Binary files /dev/null and b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff differ diff --git a/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 new file mode 100644 index 0000000000..a70119c01b Binary files /dev/null and b/src/backend/InvenTree/InvenTree/static/tabler-icons/tabler-icons.woff2 differ diff --git a/src/backend/InvenTree/InvenTree/tasks.py b/src/backend/InvenTree/InvenTree/tasks.py index d436581ae4..21195c9c75 100644 --- a/src/backend/InvenTree/InvenTree/tasks.py +++ b/src/backend/InvenTree/InvenTree/tasks.py @@ -118,7 +118,7 @@ def check_daily_holdoff(task_name: str, n_days: int = 1) -> bool: if last_success: threshold = datetime.now() - timedelta(days=n_days) - if last_success > threshold: + if last_success.date() > threshold.date(): logger.info( "Last successful run for '%s' was too recent - skipping task", task_name ) diff --git a/src/backend/InvenTree/InvenTree/urls.py b/src/backend/InvenTree/InvenTree/urls.py index 4d3d7f95c6..91a6ce35ca 100644 --- a/src/backend/InvenTree/InvenTree/urls.py +++ b/src/backend/InvenTree/InvenTree/urls.py @@ -35,6 +35,7 @@ from company.urls import company_urls, manufacturer_part_urls, supplier_part_url from order.urls import order_urls from part.urls import part_urls from plugin.urls import get_plugin_urls +from stock.api import test_statistics_api_urls from stock.urls import stock_urls from web.urls import api_urls as web_api_urls from web.urls import urlpatterns as platform_urls @@ -109,6 +110,7 @@ apipatterns = [ ), ]), ), + path('test-statistics/', include(test_statistics_api_urls)), path('user/', include(users.api.user_urls)), path('web/', include(web_api_urls)), # Plugin endpoints diff --git a/src/backend/InvenTree/InvenTree/version.py b/src/backend/InvenTree/InvenTree/version.py index 8752f4e6a7..db8c25f603 100644 --- a/src/backend/InvenTree/InvenTree/version.py +++ b/src/backend/InvenTree/InvenTree/version.py @@ -18,7 +18,7 @@ from django.conf import settings from .api_version import INVENTREE_API_TEXT, INVENTREE_API_VERSION # InvenTree software version -INVENTREE_SW_VERSION = '0.16.0 dev' +INVENTREE_SW_VERSION = '0.17.0 dev' logger = logging.getLogger('inventree') diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py index e21c60037d..e84ffe4396 100644 --- a/src/backend/InvenTree/build/api.py +++ b/src/backend/InvenTree/build/api.py @@ -359,6 +359,8 @@ class BuildLineList(BuildLineEndpoint, DataExportViewMixin, ListCreateAPI): 'unit_quantity', 'available_stock', 'trackable', + 'allow_variants', + 'inherited', ] ordering_field_aliases = { @@ -368,6 +370,8 @@ class BuildLineList(BuildLineEndpoint, DataExportViewMixin, ListCreateAPI): 'consumable': 'bom_item__consumable', 'optional': 'bom_item__optional', 'trackable': 'bom_item__sub_part__trackable', + 'allow_variants': 'bom_item__allow_variants', + 'inherited': 'bom_item__inherited', } search_fields = [ @@ -466,9 +470,19 @@ class BuildFinish(BuildOrderContextMixin, CreateAPI): """API endpoint for marking a build as finished (completed).""" queryset = Build.objects.none() - serializer_class = build.serializers.BuildCompleteSerializer + def get_queryset(self): + """Return the queryset for the BuildFinish API endpoint.""" + + queryset = super().get_queryset() + queryset = queryset.prefetch_related( + 'build_lines', + 'build_lines__allocations' + ) + + return queryset + class BuildAutoAllocate(BuildOrderContextMixin, CreateAPI): """API endpoint for 'automatically' allocating stock against a build order. @@ -480,7 +494,6 @@ class BuildAutoAllocate(BuildOrderContextMixin, CreateAPI): """ queryset = Build.objects.none() - serializer_class = build.serializers.BuildAutoAllocationSerializer @@ -496,10 +509,22 @@ class BuildAllocate(BuildOrderContextMixin, CreateAPI): """ queryset = Build.objects.none() - serializer_class = build.serializers.BuildAllocationSerializer +class BuildIssue(BuildOrderContextMixin, CreateAPI): + """API endpoint for issuing a BuildOrder.""" + + queryset = Build.objects.all() + serializer_class = build.serializers.BuildIssueSerializer + + +class BuildHold(BuildOrderContextMixin, CreateAPI): + """API endpoint for placing a BuildOrder on hold.""" + + queryset = Build.objects.all() + serializer_class = build.serializers.BuildHoldSerializer + class BuildCancel(BuildOrderContextMixin, CreateAPI): """API endpoint for cancelling a BuildOrder.""" @@ -571,19 +596,23 @@ class BuildItemList(DataExportViewMixin, BulkDeleteMixin, ListCreateAPI): return self.serializer_class(*args, **kwargs) def get_queryset(self): - """Override the queryset method, to allow filtering by stock_item.part.""" + """Override the queryset method, to perform custom prefetch.""" queryset = super().get_queryset() queryset = queryset.select_related( 'build_line', 'build_line__build', 'build_line__bom_item', + 'build_line__bom_item__part', + 'build_line__bom_item__sub_part', 'install_into', 'stock_item', 'stock_item__location', 'stock_item__part', - 'stock_item__supplier_part', + 'stock_item__supplier_part__part', + 'stock_item__supplier_part__supplier', 'stock_item__supplier_part__manufacturer_part', + 'stock_item__supplier_part__manufacturer_part__manufacturer', ).prefetch_related( 'stock_item__location__tags', ) @@ -655,6 +684,8 @@ build_api_urls = [ path('create-output/', BuildOutputCreate.as_view(), name='api-build-output-create'), path('delete-outputs/', BuildOutputDelete.as_view(), name='api-build-output-delete'), path('scrap-outputs/', BuildOutputScrap.as_view(), name='api-build-output-scrap'), + path('issue/', BuildIssue.as_view(), name='api-build-issue'), + path('hold/', BuildHold.as_view(), name='api-build-hold'), path('finish/', BuildFinish.as_view(), name='api-build-finish'), path('cancel/', BuildCancel.as_view(), name='api-build-cancel'), path('unallocate/', BuildUnallocate.as_view(), name='api-build-unallocate'), diff --git a/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py b/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py index 8db4a7f952..5094d74c6d 100644 --- a/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py +++ b/src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py @@ -5,6 +5,8 @@ from django.db import migrations, models import django.db.models.deletion import mptt.fields +from build.status_codes import BuildStatus + class Migration(migrations.Migration): @@ -40,7 +42,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='build', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Production'), (30, 'Cancelled'), (40, 'Complete')], default=10, help_text='Build status code', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Build Status'), + field=models.PositiveIntegerField(choices=BuildStatus.items(), default=BuildStatus.PENDING.value, help_text='Build status code', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Build Status'), ), migrations.AlterField( model_name='build', diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py index 85a97fb625..eb0449ea94 100644 --- a/src/backend/InvenTree/build/models.py +++ b/src/backend/InvenTree/build/models.py @@ -2,7 +2,6 @@ import decimal import logging -import os from datetime import datetime from django.conf import settings @@ -26,6 +25,7 @@ from build.status_codes import BuildStatus, BuildStatusGroups from stock.status_codes import StockStatus, StockHistoryCode from build.validators import generate_next_build_reference, validate_build_order_reference +from generic.states import StateTransitionMixin import InvenTree.fields import InvenTree.helpers @@ -56,6 +56,7 @@ class Build( InvenTree.models.MetadataMixin, InvenTree.models.PluginValidationMixin, InvenTree.models.ReferenceIndexingMixin, + StateTransitionMixin, MPTTModel): """A Build object organises the creation of new StockItem objects from other existing StockItem objects. @@ -574,6 +575,10 @@ class Build( - Completed count must meet the required quantity - Untracked parts must be allocated """ + + if self.status != BuildStatus.PRODUCTION.value: + return False + if self.incomplete_count > 0: return False @@ -602,8 +607,18 @@ class Build( def complete_build(self, user, trim_allocated_stock=False): """Mark this build as complete.""" + return self.handle_transition( + self.status, BuildStatus.COMPLETE.value, self, self._action_complete, user=user, trim_allocated_stock=trim_allocated_stock + ) + + def _action_complete(self, *args, **kwargs): + """Action to be taken when a build is completed.""" + import build.tasks + trim_allocated_stock = kwargs.pop('trim_allocated_stock', False) + user = kwargs.pop('user', None) + if self.incomplete_count > 0: return @@ -665,6 +680,59 @@ class Build( target_exclude=[user], ) + @transaction.atomic + def issue_build(self): + """Mark the Build as IN PRODUCTION. + + Args: + user: The user who is issuing the build + """ + return self.handle_transition( + self.status, BuildStatus.PENDING.value, self, self._action_issue + ) + + @property + def can_issue(self): + """Returns True if this BuildOrder can be issued.""" + return self.status in [ + BuildStatus.PENDING.value, + BuildStatus.ON_HOLD.value, + ] + + def _action_issue(self, *args, **kwargs): + """Perform the action to mark this order as PRODUCTION.""" + + if self.can_issue: + self.status = BuildStatus.PRODUCTION.value + self.save() + + trigger_event('build.issued', id=self.pk) + + @transaction.atomic + def hold_build(self): + """Mark the Build as ON HOLD.""" + + return self.handle_transition( + self.status, BuildStatus.ON_HOLD.value, self, self._action_hold + ) + + @property + def can_hold(self): + """Returns True if this BuildOrder can be placed on hold""" + return self.status in [ + BuildStatus.PENDING.value, + BuildStatus.PRODUCTION.value, + ] + + def _action_hold(self, *args, **kwargs): + """Action to be taken when a build is placed on hold.""" + + if self.can_hold: + self.status = BuildStatus.ON_HOLD.value + self.save() + + trigger_event('build.hold', id=self.pk) + @transaction.atomic def cancel_build(self, user, **kwargs): """Mark the Build as CANCELLED. @@ -674,8 +742,17 @@ class Build( - Save the Build object """ + return self.handle_transition( + self.status, BuildStatus.CANCELLED.value, self, self._action_cancel, user=user, **kwargs + ) + + def _action_cancel(self, *args, **kwargs): + """Action to be taken when a build is cancelled.""" + import build.tasks + user = kwargs.pop('user', None) + remove_allocated_stock = kwargs.get('remove_allocated_stock', False) remove_incomplete_outputs = kwargs.get('remove_incomplete_outputs', False) @@ -1276,7 +1353,7 @@ class Build( @property def is_complete(self): """Returns True if the build status is COMPLETE.""" - return self.status == BuildStatus.COMPLETE + return self.status == BuildStatus.COMPLETE.value @transaction.atomic def create_build_line_items(self, prevent_duplicates=True): diff --git a/src/backend/InvenTree/build/serializers.py b/src/backend/InvenTree/build/serializers.py index 390cabab92..38f6b43adf 100644 --- a/src/backend/InvenTree/build/serializers.py +++ b/src/backend/InvenTree/build/serializers.py @@ -23,7 +23,7 @@ from stock.status_codes import StockStatus from stock.generators import generate_batch_code from stock.models import StockItem, StockLocation -from stock.serializers import StockItemSerializerBrief, LocationSerializer +from stock.serializers import StockItemSerializerBrief, LocationBriefSerializer import common.models from common.serializers import ProjectCodeSerializer @@ -34,6 +34,7 @@ import part.serializers as part_serializers from users.serializers import OwnerSerializer from .models import Build, BuildLine, BuildItem +from .status_codes import BuildStatus class BuildSerializer(NotesFieldMixin, DataImportExportSerializerMixin, InvenTreeModelSerializer): @@ -597,6 +598,33 @@ class BuildOutputCompleteSerializer(serializers.Serializer): ) +class BuildIssueSerializer(serializers.Serializer): + """DRF serializer for issuing a build order.""" + + class Meta: + """Serializer metaclass""" + fields = [] + + def save(self): + """Issue the specified build order""" + build = self.context['build'] + build.issue_build() + + +class BuildHoldSerializer(serializers.Serializer): + """DRF serializer for placing a BuildOrder on hold.""" + + class Meta: + """Serializer metaclass.""" + fields = [] + + def save(self): + """Place the specified build on hold.""" + build = self.context['build'] + + build.hold_build() + + class BuildCancelSerializer(serializers.Serializer): """DRF serializer class for cancelling an active BuildOrder""" @@ -737,6 +765,9 @@ class BuildCompleteSerializer(serializers.Serializer): """Perform validation of this serializer prior to saving""" build = self.context['build'] + if build.status != BuildStatus.PRODUCTION.value: + raise ValidationError(_("Build order must be in production state")) + if build.incomplete_count > 0: raise ValidationError(_("Build order has incomplete outputs")) @@ -1064,6 +1095,8 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # These fields are only used for data export export_only_fields = [ + 'bom_part_id', + 'bom_part_name', 'build_reference', 'sku', 'mpn', @@ -1071,9 +1104,11 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'part_id', 'part_name', 'part_ipn', + 'part_description', 'available_quantity', 'item_batch_code', 'item_serial', + 'item_packaging', ] class Meta: @@ -1097,6 +1132,8 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # The following fields are only used for data export 'bom_reference', + 'bom_part_id', + 'bom_part_name', 'build_reference', 'location_name', 'mpn', @@ -1104,9 +1141,11 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'part_id', 'part_name', 'part_ipn', + 'part_description', 'available_quantity', 'item_batch_code', 'item_serial_number', + 'item_packaging', ] def __init__(self, *args, **kwargs): @@ -1136,11 +1175,17 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali location_name = serializers.CharField(source='stock_item.location.name', label=_('Location Name'), read_only=True) build_reference = serializers.CharField(source='build.reference', label=_('Build Reference'), read_only=True) bom_reference = serializers.CharField(source='build_line.bom_item.reference', label=_('BOM Reference'), read_only=True) + item_packaging = serializers.CharField(source='stock_item.packaging', label=_('Packaging'), read_only=True) # Part detail fields part_id = serializers.PrimaryKeyRelatedField(source='stock_item.part', label=_('Part ID'), many=False, read_only=True) part_name = serializers.CharField(source='stock_item.part.name', label=_('Part Name'), read_only=True) part_ipn = serializers.CharField(source='stock_item.part.IPN', label=_('Part IPN'), read_only=True) + part_description = serializers.CharField(source='stock_item.part.description', label=_('Part Description'), read_only=True) + + # BOM Item Part ID (it may be different to the allocated part) + bom_part_id = serializers.PrimaryKeyRelatedField(source='build_line.bom_item.sub_part', label=_('BOM Part ID'), many=False, read_only=True) + bom_part_name = serializers.CharField(source='build_line.bom_item.sub_part.name', label=_('BOM Part Name'), read_only=True) item_batch_code = serializers.CharField(source='stock_item.batch', label=_('Batch Code'), read_only=True) item_serial_number = serializers.CharField(source='stock_item.serial', label=_('Serial Number'), read_only=True) @@ -1152,9 +1197,9 @@ class BuildItemSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali part_detail = part_serializers.PartBriefSerializer(source='stock_item.part', many=False, read_only=True, pricing=False) stock_item_detail = StockItemSerializerBrief(source='stock_item', read_only=True) location = serializers.PrimaryKeyRelatedField(source='stock_item.location', many=False, read_only=True) - location_detail = LocationSerializer(source='stock_item.location', read_only=True) + location_detail = LocationBriefSerializer(source='stock_item.location', read_only=True) build_detail = BuildSerializer(source='build_line.build', many=False, read_only=True) - supplier_part_detail = company.serializers.SupplierPartSerializer(source='stock_item.supplier_part', many=False, read_only=True) + supplier_part_detail = company.serializers.SupplierPartSerializer(source='stock_item.supplier_part', many=False, read_only=True, brief=True) quantity = InvenTreeDecimalField(label=_('Allocated Quantity')) available_quantity = InvenTreeDecimalField(source='stock_item.quantity', read_only=True, label=_('Available Quantity')) @@ -1243,7 +1288,7 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali # Foreign key fields bom_item_detail = part_serializers.BomItemSerializer(source='bom_item', many=False, read_only=True, pricing=False) - part_detail = part_serializers.PartSerializer(source='bom_item.sub_part', many=False, read_only=True, pricing=False) + part_detail = part_serializers.PartBriefSerializer(source='bom_item.sub_part', many=False, read_only=True, pricing=False) allocations = BuildItemSerializer(many=True, read_only=True) # Annotated (calculated) fields @@ -1289,16 +1334,20 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali """ queryset = queryset.select_related( - 'build', 'bom_item', + 'build', + 'bom_item', + 'bom_item__part', + 'bom_item__part__pricing_data', + 'bom_item__sub_part', + 'bom_item__sub_part__pricing_data', ) # Pre-fetch related fields queryset = queryset.prefetch_related( - 'bom_item__sub_part', + 'bom_item__sub_part__tags', 'bom_item__sub_part__stock_items', 'bom_item__sub_part__stock_items__allocations', 'bom_item__sub_part__stock_items__sales_order_allocations', - 'bom_item__sub_part__tags', 'bom_item__substitutes', 'bom_item__substitutes__part__stock_items', @@ -1310,6 +1359,11 @@ class BuildLineSerializer(DataImportExportSerializerMixin, InvenTreeModelSeriali 'allocations__stock_item__part', 'allocations__stock_item__location', 'allocations__stock_item__location__tags', + 'allocations__stock_item__supplier_part', + 'allocations__stock_item__supplier_part__part', + 'allocations__stock_item__supplier_part__supplier', + 'allocations__stock_item__supplier_part__manufacturer_part', + 'allocations__stock_item__supplier_part__manufacturer_part__manufacturer', ) # Annotate the "allocated" quantity diff --git a/src/backend/InvenTree/build/status_codes.py b/src/backend/InvenTree/build/status_codes.py index 463bd22059..56c8a3a5d6 100644 --- a/src/backend/InvenTree/build/status_codes.py +++ b/src/backend/InvenTree/build/status_codes.py @@ -9,7 +9,8 @@ class BuildStatus(StatusCode): """Build status codes.""" PENDING = 10, _('Pending'), 'secondary' # Build is pending / active - PRODUCTION = 20, _('Production'), 'primary' # BuildOrder is in production + PRODUCTION = 20, _('Production'), 'primary' # Build is in production + ON_HOLD = 25, _('On Hold'), 'warning' # Build is on hold CANCELLED = 30, _('Cancelled'), 'danger' # Build was cancelled COMPLETE = 40, _('Complete'), 'success' # Build is complete @@ -17,4 +18,8 @@ class BuildStatus(StatusCode): class BuildStatusGroups: """Groups for BuildStatus codes.""" - ACTIVE_CODES = [BuildStatus.PENDING.value, BuildStatus.PRODUCTION.value] + ACTIVE_CODES = [ + BuildStatus.PENDING.value, + BuildStatus.ON_HOLD.value, + BuildStatus.PRODUCTION.value, + ] diff --git a/src/backend/InvenTree/build/templates/build/build_base.html b/src/backend/InvenTree/build/templates/build/build_base.html index 5a40b32e7b..536b95c6ec 100644 --- a/src/backend/InvenTree/build/templates/build/build_base.html +++ b/src/backend/InvenTree/build/templates/build/build_base.html @@ -69,22 +69,30 @@ src="{% static 'img/blank_image.png' %}" -{% if build.active %} +{% if build.can_issue %} + +{% elif build.active %} {% endif %} + {% endif %} {% endblock actions %} @@ -244,6 +252,31 @@ src="{% static 'img/blank_image.png' %}" ); }); + $('#build-hold').click(function() { + holdOrder( + '{% url "api-build-hold" build.pk %}', + { + reload: true, + } + ); + }); + + $('#build-issue').click(function() { + constructForm('{% url "api-build-issue" build.pk %}', { + method: 'POST', + title: '{% trans "Issue Build Order" %}', + confirm: true, + preFormContent: ` +
+ {% trans "Issue this Build Order?" %} +
+ `, + onSuccess: function(response) { + window.location.reload(); + } + }); + }); + $("#build-complete").on('click', function() { completeBuildOrder({{ build.pk }}); }); @@ -298,6 +331,12 @@ src="{% static 'img/blank_image.png' %}" build: {{ build.pk }}, }); }); + + {% if build.part.trackable > 0 %} + onPanelLoad("test-statistics", function() { + prepareTestStatisticsTable('build', '{% url "api-test-statistics-by-build" build.pk %}') + }); + {% endif %} {% endif %} {% endif %} diff --git a/src/backend/InvenTree/build/templates/build/detail.html b/src/backend/InvenTree/build/templates/build/detail.html index 6cabe1f01c..e1b2c47c61 100644 --- a/src/backend/InvenTree/build/templates/build/detail.html +++ b/src/backend/InvenTree/build/templates/build/detail.html @@ -267,6 +267,21 @@ +
+
+

+ {% trans "Build test statistics" %} +

+
+ +
+
+ {% include "filter_list.html" with id="buildteststatistics" %} +
+ {% include "test_statistics_table.html" with prefix="build-" %} +
+
+
diff --git a/src/backend/InvenTree/build/templates/build/sidebar.html b/src/backend/InvenTree/build/templates/build/sidebar.html index 1c20429f2f..ef3ca6f14d 100644 --- a/src/backend/InvenTree/build/templates/build/sidebar.html +++ b/src/backend/InvenTree/build/templates/build/sidebar.html @@ -20,6 +20,10 @@ {% include "sidebar_item.html" with label='consumed' text=text icon="fa-tasks" %} {% trans "Child Build Orders" as text %} {% include "sidebar_item.html" with label='children' text=text icon="fa-sitemap" %} +{% if build.part.trackable %} +{% trans "Test Statistics" as text %} +{% include "sidebar_item.html" with label='test-statistics' text=text icon="fa-chart-line" %} +{% endif %} {% trans "Attachments" as text %} {% include "sidebar_item.html" with label='attachments' text=text icon="fa-paperclip" %} {% trans "Notes" as text %} diff --git a/src/backend/InvenTree/build/test_api.py b/src/backend/InvenTree/build/test_api.py index 435db8367e..acb75c25f3 100644 --- a/src/backend/InvenTree/build/test_api.py +++ b/src/backend/InvenTree/build/test_api.py @@ -1015,7 +1015,7 @@ class BuildOverallocationTest(BuildAPITest): 'accept_overallocated': 'trim', }, expected_code=201, - max_query_count=550, # TODO: Come back and refactor this + max_query_count=555, # TODO: Come back and refactor this ) self.build.refresh_from_db() diff --git a/src/backend/InvenTree/build/test_build.py b/src/backend/InvenTree/build/test_build.py index 4f06038888..7e190e3e21 100644 --- a/src/backend/InvenTree/build/test_build.py +++ b/src/backend/InvenTree/build/test_build.py @@ -15,6 +15,7 @@ import common.models from common.settings import set_global_setting import build.tasks from build.models import Build, BuildItem, BuildLine, generate_next_build_reference +from build.status_codes import BuildStatus from part.models import Part, BomItem, BomItemSubstitute, PartTestTemplate from stock.models import StockItem, StockItemTestResult from users.models import Owner @@ -175,6 +176,7 @@ class BuildTestBase(TestCase): part=cls.assembly, quantity=10, issued_by=get_user_model().objects.get(pk=1), + status=BuildStatus.PENDING, ) # Create some BuildLine items we can use later on @@ -321,6 +323,10 @@ class BuildTest(BuildTestBase): # Build is PENDING self.assertEqual(self.build.status, status.BuildStatus.PENDING) + self.assertTrue(self.build.is_active) + self.assertTrue(self.build.can_hold) + self.assertTrue(self.build.can_issue) + # Build has two build outputs self.assertEqual(self.build.output_count, 2) @@ -470,6 +476,11 @@ class BuildTest(BuildTestBase): def test_overallocation_and_trim(self): """Test overallocation of stock and trim function""" + + self.assertEqual(self.build.status, status.BuildStatus.PENDING) + self.build.issue_build() + self.assertEqual(self.build.status, status.BuildStatus.PRODUCTION) + # Fully allocate tracked stock (not eligible for trimming) self.allocate_stock( self.output_1, @@ -516,6 +527,7 @@ class BuildTest(BuildTestBase): self.build.complete_build_output(self.output_1, None) self.build.complete_build_output(self.output_2, None) + self.assertTrue(self.build.can_complete) n = StockItem.objects.filter(consumed_by=self.build).count() @@ -583,6 +595,8 @@ class BuildTest(BuildTestBase): self.stock_2_1.quantity = 30 self.stock_2_1.save() + self.build.issue_build() + # Allocate non-tracked parts self.allocate_stock( None, diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py index 268e2680d2..bb2bd8f53d 100644 --- a/src/backend/InvenTree/common/api.py +++ b/src/backend/InvenTree/common/api.py @@ -9,6 +9,7 @@ from django.http.response import HttpResponse from django.urls import include, path, re_path from django.utils.decorators import method_decorator from django.utils.translation import gettext_lazy as _ +from django.views.decorators.cache import cache_control from django.views.decorators.csrf import csrf_exempt import django_q.models @@ -25,6 +26,7 @@ from rest_framework.views import APIView import common.models import common.serializers +from common.icons import get_icon_packs from common.settings import get_global_setting from generic.states.api import AllStatusViews, StatusView from importer.mixins import DataExportViewMixin @@ -743,6 +745,18 @@ class AttachmentDetail(RetrieveUpdateDestroyAPI): return super().destroy(request, *args, **kwargs) +@method_decorator(cache_control(public=True, max_age=86400), name='dispatch') +class IconList(ListAPI): + """List view for available icon packages.""" + + serializer_class = common.serializers.IconPackageSerializer + permission_classes = [permissions.AllowAny] + + def get_queryset(self): + """Return a list of all available icon packages.""" + return get_icon_packs().values() + + settings_api_urls = [ # User settings path( @@ -957,6 +971,8 @@ common_api_urls = [ path('', ContentTypeList.as_view(), name='api-contenttype-list'), ]), ), + # Icons + path('icons/', IconList.as_view(), name='api-icon-list'), ] admin_api_urls = [ diff --git a/src/backend/InvenTree/common/icons.py b/src/backend/InvenTree/common/icons.py new file mode 100644 index 0000000000..1ba6efe241 --- /dev/null +++ b/src/backend/InvenTree/common/icons.py @@ -0,0 +1,114 @@ +"""Icon utilities for InvenTree.""" + +import json +import logging +from dataclasses import dataclass +from pathlib import Path +from typing import TypedDict + +from django.core.exceptions import ValidationError +from django.templatetags.static import static + +logger = logging.getLogger('inventree') + +_icon_packs = None + + +class Icon(TypedDict): + """Dict type for an icon. + + Attributes: + name: The name of the icon. + category: The category of the icon. + tags: A list of tags for the icon (used for search). + variants: A dictionary of variants for the icon, where the key is the variant name and the value is the variant's unicode hex character. + """ + + name: str + category: str + tags: list[str] + variants: dict[str, str] + + +@dataclass +class IconPack: + """Dataclass for an icon pack. + + Attributes: + name: The name of the icon pack. + prefix: The prefix used for the icon pack. + fonts: A dictionary of different font file formats for the icon pack, where the key is the css format and the value a path to the font file. + icons: A dictionary of icons in the icon pack, where the key is the icon name and the value is a dictionary of the icon's variants. + """ + + name: str + prefix: str + fonts: dict[str, str] + icons: dict[str, Icon] + + +def get_icon_packs(): + """Return a dictionary of available icon packs including their icons.""" + global _icon_packs + + if _icon_packs is None: + tabler_icons_path = Path(__file__).parent.parent.joinpath( + 'InvenTree/static/tabler-icons/icons.json' + ) + with open(tabler_icons_path, 'r') as tabler_icons_file: + tabler_icons = json.load(tabler_icons_file) + + icon_packs = [ + IconPack( + name='Tabler Icons', + prefix='ti', + fonts={ + 'woff2': static('tabler-icons/tabler-icons.woff2'), + 'woff': static('tabler-icons/tabler-icons.woff'), + 'truetype': static('tabler-icons/tabler-icons.ttf'), + }, + icons=tabler_icons, + ) + ] + + from plugin import registry + + for plugin in registry.with_mixin('icon_pack', active=True): + try: + icon_packs.extend(plugin.icon_packs()) + except Exception as e: + logger.warning('Error loading icon pack from plugin %s: %s', plugin, e) + + _icon_packs = {pack.prefix: pack for pack in icon_packs} + + return _icon_packs + + +def reload_icon_packs(): + """Reload the icon packs.""" + global _icon_packs + _icon_packs = None + get_icon_packs() + + +def validate_icon(icon: str): + """Validate an icon string in the format pack:name:variant.""" + try: + pack, name, variant = icon.split(':') + except ValueError: + raise ValidationError( + f'Invalid icon format: {icon}, expected: pack:name:variant' + ) + + packs = get_icon_packs() + + if pack not in packs: + raise ValidationError(f'Invalid icon pack: {pack}') + + if name not in packs[pack].icons: + raise ValidationError(f'Invalid icon name: {name}') + + if variant not in packs[pack].icons[name]['variants']: + raise ValidationError(f'Invalid icon variant: {variant}') + + return packs[pack], packs[pack].icons[name], variant diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 93da434ad5..46e38b03d8 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -1558,6 +1558,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'name': _('Part Category Default Icon'), 'description': _('Part category default icon (empty means no icon)'), 'default': '', + 'validator': common.validators.validate_icon, }, 'PART_PARAMETER_ENFORCE_UNITS': { 'name': _('Enforce Parameter Units'), @@ -1779,6 +1780,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'name': _('Stock Location Default Icon'), 'description': _('Stock location default icon (empty means no icon)'), 'default': '', + 'validator': common.validators.validate_icon, }, 'STOCK_SHOW_INSTALLED_ITEMS': { 'name': _('Show Installed Stock Items'), diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py index 45b681cb19..8b2e55c014 100644 --- a/src/backend/InvenTree/common/serializers.py +++ b/src/backend/InvenTree/common/serializers.py @@ -565,3 +565,21 @@ class AttachmentSerializer(InvenTreeModelSerializer): ) return super().save() + + +class IconSerializer(serializers.Serializer): + """Serializer for an icon.""" + + name = serializers.CharField() + category = serializers.CharField() + tags = serializers.ListField(child=serializers.CharField()) + variants = serializers.DictField(child=serializers.CharField()) + + +class IconPackageSerializer(serializers.Serializer): + """Serializer for a list of icons.""" + + name = serializers.CharField() + prefix = serializers.CharField() + fonts = serializers.DictField(child=serializers.CharField()) + icons = serializers.DictField(child=IconSerializer()) diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py index b08ab0b5f2..0c4d236bf9 100644 --- a/src/backend/InvenTree/common/tests.py +++ b/src/backend/InvenTree/common/tests.py @@ -20,6 +20,7 @@ from django.urls import reverse import PIL +import common.validators from common.settings import get_global_setting, set_global_setting from InvenTree.helpers import str2bool from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase, PluginMixin @@ -1524,3 +1525,44 @@ class ContentTypeAPITest(InvenTreeAPITestCase): reverse('api-contenttype-detail-modelname', kwargs={'model': None}), expected_code=404, ) + + +class IconAPITest(InvenTreeAPITestCase): + """Unit tests for the Icons API.""" + + def test_list(self): + """Test API list functionality.""" + response = self.get(reverse('api-icon-list'), expected_code=200) + self.assertEqual(len(response.data), 1) + + self.assertEqual(response.data[0]['prefix'], 'ti') + self.assertEqual(response.data[0]['name'], 'Tabler Icons') + for font_format in ['woff2', 'woff', 'truetype']: + self.assertIn(font_format, response.data[0]['fonts']) + + self.assertGreater(len(response.data[0]['icons']), 1000) + + +class ValidatorsTest(TestCase): + """Unit tests for the custom validators.""" + + def test_validate_icon(self): + """Test the validate_icon function.""" + common.validators.validate_icon('') + common.validators.validate_icon(None) + + with self.assertRaises(ValidationError): + common.validators.validate_icon('invalid') + + with self.assertRaises(ValidationError): + common.validators.validate_icon('my:package:non-existing') + + with self.assertRaises(ValidationError): + common.validators.validate_icon( + 'ti:my-non-existing-icon:non-existing-variant' + ) + + with self.assertRaises(ValidationError): + common.validators.validate_icon('ti:package:non-existing-variant') + + common.validators.validate_icon('ti:package:outline') diff --git a/src/backend/InvenTree/common/validators.py b/src/backend/InvenTree/common/validators.py index a806e6cc0d..c8b2b18762 100644 --- a/src/backend/InvenTree/common/validators.py +++ b/src/backend/InvenTree/common/validators.py @@ -1,10 +1,12 @@ """Validation helpers for common models.""" import re +from typing import Union from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ +import common.icons from common.settings import get_global_setting @@ -103,3 +105,11 @@ def validate_email_domains(setting): raise ValidationError(_('An empty domain is not allowed.')) if not re.match(r'^@[a-zA-Z0-9\.\-_]+$', domain): raise ValidationError(_(f'Invalid domain name: {domain}')) + + +def validate_icon(name: Union[str, None]): + """Validate the provided icon name, and ignore if empty.""" + if name == '' or name is None: + return + + common.icons.validate_icon(name) diff --git a/src/backend/InvenTree/company/serializers.py b/src/backend/InvenTree/company/serializers.py index 428ea7b5b8..5123b3f1e8 100644 --- a/src/backend/InvenTree/company/serializers.py +++ b/src/backend/InvenTree/company/serializers.py @@ -381,9 +381,14 @@ class SupplierPartSerializer( self.fields.pop('manufacturer_detail', None) self.fields.pop('manufacturer_part_detail', None) - if prettify is not True: + if brief or prettify is not True: self.fields.pop('pretty_name', None) + if brief: + self.fields.pop('tags') + self.fields.pop('available') + self.fields.pop('availability_updated') + # Annotated field showing total in-stock quantity in_stock = serializers.FloatField(read_only=True, label=_('In Stock')) diff --git a/src/backend/InvenTree/generic/states/states.py b/src/backend/InvenTree/generic/states/states.py index 372a5bec45..c72b201eca 100644 --- a/src/backend/InvenTree/generic/states/states.py +++ b/src/backend/InvenTree/generic/states/states.py @@ -16,11 +16,26 @@ class BaseEnum(enum.IntEnum): obj._value_ = args[0] return obj + def __int__(self): + """Return an integer representation of the value.""" + return self.value + + def __str__(self): + """Return a string representation of the value.""" + return str(self.value) + def __eq__(self, obj): """Override equality operator to allow comparison with int.""" - if type(self) is type(obj): - return super().__eq__(obj) - return self.value == obj + if type(obj) is int: + return self.value == obj + + if isinstance(obj, BaseEnum): + return self.value == obj.value + + if hasattr(obj, 'value'): + return self.value == obj.value + + return super().__eq__(obj) def __ne__(self, obj): """Override inequality operator to allow comparison with int.""" diff --git a/src/backend/InvenTree/importer/api.py b/src/backend/InvenTree/importer/api.py index b039c61063..6eb4815784 100644 --- a/src/backend/InvenTree/importer/api.py +++ b/src/backend/InvenTree/importer/api.py @@ -47,6 +47,8 @@ class DataImporterModelList(APIView): class DataImportSessionList(BulkDeleteMixin, ListCreateAPI): """API endpoint for accessing a list of DataImportSession objects.""" + permission_classes = [permissions.IsAuthenticated] + queryset = importer.models.DataImportSession.objects.all() serializer_class = importer.serializers.DataImportSessionSerializer diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index 8604815d6a..904f023ef9 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:48\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -56,29 +56,30 @@ msgstr "يمكن العثور على تفاصيل الخطأ في لوحة ال msgid "Enter date" msgstr "أدخل التاريخ" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "ملاحظات" @@ -91,118 +92,122 @@ msgstr "القيمة '{name}' لا تظهر في تنسيق النمط" msgid "Provided value does not match required pattern: " msgstr "القيمة المقدمة لا تتطابق مع النمط المطلوب: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "أدخل كلمة المرور" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "أدخل كلمة مرور جديدة" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "تأكيد كلمة المرور" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "تأكيد كلمة المرور الجديدة" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "كلمة المرور القديمة" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "البريد الإلكتروني (مرة أخرى)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "تأكيد البريد الإلكتروني" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل مرة." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "عنوان البريد الإلكتروني الرئيسي المقدم غير صالح." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "لم تتم الموافقة على نطاق البريد الإلكتروني المقدم." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "التسجيل معطل." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "الكمية المقدمة غير صحيحة" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "سلسلة الرقم التسلسلي فارغة" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "تكرار التسلسل" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index 54e3d79bb6..188f9915d6 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -56,29 +56,30 @@ msgstr "Подробности за грешката могат да се нам msgid "Enter date" msgstr "Въведи дата" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Бележки" @@ -91,118 +92,122 @@ msgstr "Значението '{name}' не отговаря на шаблона" msgid "Provided value does not match required pattern: " msgstr "Въведеното значение не отговаря на задължителния шаблон: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Въведете парола" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Въведи нова парола" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Потвърди паролата" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Потвърди нова парола" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Стара парола" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Е-поща отново" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Потвърждение на електронната поща" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Трябва ла въведете една и съща електронна поща." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Липсва сериен номер" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Повтарящ се сериен номер" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Невалиден диапазон от групи: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Не са открити серийни номера" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Премахнете HTML маркерите от тази стойност" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Част" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Потребител" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Изпратено" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Изгубен" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Върнат" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Изпълнява се" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Цялостна наличност" @@ -6504,784 +6579,785 @@ msgstr "Цялостна наличност" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Наличност" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Няма наличност" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Място в склада" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index fb9f9c3e04..337bb94c43 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -56,29 +56,30 @@ msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Poznámky" @@ -91,118 +92,122 @@ msgstr "Hodnota '{name}' neodpovídá formátu vzoru" msgid "Provided value does not match required pattern: " msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Zadejte heslo" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Zadejte nové heslo" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potvrďte heslo" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potvrďte nové heslo" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Původní heslo" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (znovu)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potvrzení emailové adresy" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrace vypnuta." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplicitní výrobní číslo" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Neplatný rozsah skupiny: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Rozsah skupiny {group} překračuje povolené množství ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Neplatná sekvence skupiny: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Počet jedinečných sériových čísel ({len(serials)}) musí odpovídat množství ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Přihlásit se do aplikace" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Chyba při ověření pluginu" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Název" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Popis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Musí být platné číslo" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "Super-uživatel" msgid "Is this user a superuser" msgstr "Je tento uživatel superuživatel" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktivní" @@ -662,7 +667,7 @@ msgstr "URL souboru vzdáleného obrázku" msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontrola procesů na pozadí se nezdařila" @@ -726,59 +731,59 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Volitelné" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Sledováno" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Přiděleno" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Dostupné" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Vytvořit objednávku" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Vytvořit objednávku" msgid "Build Orders" msgstr "Vytvořené objednávky" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Neplatná volba nadřazeného sestavení" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Musí být specifikován odpovědný uživatel nebo skupina" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Díly obědnávky sestavení nemohou být změněny" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Reference" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Stručný popis sestavení (nepovinné)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadřazená sestava" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Díl" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Vyber téma, které chceš stavět" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Referenční číslo prodejní objednávky" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Prodejní příkaz, kterému je tato verze přidělena" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Umístění lokace" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vyberte lokaci, ze které chcete provést inventuru pro sestavu. (nechte prázdné, chcete-li provést inventuru z libovolné lokace)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Cílová lokace" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Vyberte lokaci, kde budou dokončené položky uloženy" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Množství sestav" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Počet skladových položek k sestavení" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Dokončené položky" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Počet skladových položek, které byly dokončeny" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Stav sestavení" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Stavový kód sestavení" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kód dávky" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Dávkový kód pro tento výstup sestavení" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Datum vytvoření" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Cílové datum dokončení" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Datum dokončení" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "dokončil" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Vystavil" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Uživatel, který vydal tento příkaz k sestavení" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odpovědný" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externí odkaz" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Odkaz na externí URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Priorita sestavení" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Priorita tohoto příkazu k sestavení" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Priorita tohoto příkazu k sestavení" msgid "Project Code" msgstr "Kód projektu" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Kód projektu pro objednávku sestavení" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "Nepodařilo se uvolnit úlohu pro dokončení přidělení sestavy" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Příkaz k sestavení {build} byl dokončen" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Výstup sestavení je již dokončen" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Množství nemůže být větší než výstupní množství" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Výstup sestavy {serial} neprošel všemi požadavky" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "Vytvořit položku řádku objednávky" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Vytvořit objekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Vytvořit objekt" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Množství" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Vyžadované množství pro objednávku" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Skladové položky" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Zdrojová skladová položka" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Skladové množství pro sestavení" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Instalovat do" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Cílová skladová položka" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Název dílu" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Vytvořit výstup" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Vytvořený výstup neodpovídá nadřazenému sestavení" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Výstupní část se neshoduje s částí příkazu sestavení" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Výstup sestavení je již dokončen" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Tento stavební výstup není plně přiřazen" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Zadejte množství pro výstup sestavení" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Celé množství požadované pro sledovatelné díly" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Je vyžadována celočíselná hodnota množství, protože kusovník obsahuje sledovatelné díly" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sériová čísla" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Zadejte sériová čísla pro sestavení výstupů" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokace" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "Skladové umístění pro výstup sestavy" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Automaticky zvolit sériová čísla" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automaticky přidělit požadované položky s odpovídajícími sériovými čísly" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "U sledovatelných dílů musí být uvedena sériová čísla" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Následující sériová čísla již existují nebo jsou neplatná" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Musí být uveden seznam výstupů sestavy" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Umístění zásob pro seškrábnuté výstupy" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Zahodit alokace" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Vyřadit všechny přidělené zásoby pro vyřazené výstupy" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Důvod vyřazení výstupu(ů) sestavy" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Umístění dokončených výstupů sestavy" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Stav" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Přijmout neúplné přidělení" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Dokončit výstupy pokud zásoby nebyly plně přiděleny" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "Spotřebovat přidělené zásoby" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "Spotřebovat všechny zásoby, které již byly přiděleny této sestavě" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Odstranit neúplné výstupy" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Odstranit všechny výstupy sestavy, které nebyly dokončeny" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Není povoleno" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Přijmout jako spotřebované touto objednávkou sestavy" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Uvolnit před dokončením této objednávky sestavy" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Nadměrně přidělené zásoby" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Jak chcete zacházet s extra skladovými položkami přiřazenými k objednávce na sestavu" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Některé skladové položky byly nadměrně přiděleny" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Přijmout nepřidělené" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Přijmout, že skladové položky nebyly plně přiřazeny k této objednávce sestavy" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Požadované zásoby nebyly plně přiděleny" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Přijmout neúplné" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Přijmout, že nebyl dokončen požadovaný počet výstupů sestavy" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Požadované množství sestavy nebylo dokončeno" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Objednávka sestavy má neúplné výstupy" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Linka sestavy" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Výstup sestavy" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Výstup sestavy musí odkazovat na stejnou sestavu" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Řádková položka sestavy" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part musí ukazovat na stejný díl jako objednávka sestavy" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Položka musí být skladem" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Dostupné množství ({q}) překročeno" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Pro přidělení sledovaných dílů musí být zadán výstup sestavy" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Výstup sestavy nelze zadat pro přidělení nesledovaných dílů" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Položky přidělení musí být poskytnuty" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Skladové místo, odkud se mají díly odebírat (ponechte prázdné, pokud chcete odebírat z libovolného místa)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Vynechat lokace" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Vyloučit skladové položky z tohoto vybraného umístění" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Zaměnitelné zásoby" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Skladové položky na více místech lze používat zaměnitelně" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Náhradní zásoby" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Povolit přidělování náhradních dílů" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Volitelné položky" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Přiřazení volitelných BOM položek k objednávce sestavy" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "Nepodařilo se spustit úlohu automatického přidělování" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Číslo dílu výrobce" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Balení" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID dílu" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "IPN dílu" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Popis dílu" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Sledovatelné" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM Položka" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Přidělené zásoby" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Na objednávku" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Ve výrobě" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Dostupné zásoby" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Nevyřízeno" @@ -1647,16 +1677,21 @@ msgstr "Nevyřízeno" msgid "Production" msgstr "Výroba" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Zrušeno" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Hotovo" @@ -1684,8 +1719,8 @@ msgstr "Miniatura dílu" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akce čárového kódu" @@ -1696,7 +1731,7 @@ msgstr "Akce čárového kódu" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Zobrazit QR kód" @@ -1707,7 +1742,7 @@ msgstr "Zobrazit QR kód" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Odstranit čárový kód" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Přiřadit čárový kód" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Upravit sestavu" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Zrušit sestavu" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Duplikovat sestavu" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Zrušit sestavu" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Smazat sestavu" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Dokončit sestavu" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Popis sestavy" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Pro tuto objednávku sestavy nebyly vytvořeny žádné výstupy sestavy" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Objednávka sestavy je připravena k označení jako dokončená" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Objednávku sestavy nelze dokončit, protože zbývají nevyřízené výstupy" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Požadované množství sestavy ještě nebylo dokončeno" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Zásoby nebyly plně přiřazeny k této objednávce na sestavu" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Cílené datum" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Tato sestava byla splatná v %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Po splatnosti" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Dokončené výstupy" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Dokončené výstupy" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Prodejní objednávka" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Vystavil" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorita" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Odstranit objednávku sestavy" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "QR kód objednávky sestavy" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Propojit čárový kód s objednávkou sestavy" @@ -1875,8 +1930,8 @@ msgstr "Zdroj zásob" msgid "Stock can be taken from any available location." msgstr "Zásoby lze odebírat z jakéhokoli dostupného umístění." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Místo určení" @@ -1890,21 +1945,21 @@ msgstr "Přidělené díly" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Šarže" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Vytvořeno" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Nenastaveno cílené datum" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Dokončeno" @@ -1987,7 +2042,11 @@ msgstr "Spotřebované zásoby" msgid "Completed Build Outputs" msgstr "Dokončené výstupy sestavy" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Dokončené výstupy sestavy" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Přílohy" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Poznámky k sestavě" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Přidělení dokončeno" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Všechny řádky byly plně přiděleny" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Objednávka nové sestavy" @@ -2037,15 +2096,20 @@ msgstr "Řádkové položky" msgid "Incomplete Outputs" msgstr "Neúplné výstupy" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "Je odkaz" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Je soubor" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "Uživatel nemá oprávnění k odstranění této přílohy" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Soubor" msgid "Select {name} file to upload" msgstr "Vyberte {name} soubor k nahrání" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aktualizováno" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Časové razítko poslední aktualizace" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "Adresa URL webu je uzamčena konfigurací" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Jedinečný kód projektu" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Popis projektu" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Uživatel nebo skupina odpovědná za tento projekt" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Hodnota nastavení" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Zvolená hodnota není platnou možností" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Hodnota musí být logická hodnota" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Hodnota musí být celé číslo" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Klíčový text musí být jedinečný" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Žádná skupina" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Je vyžadován restart" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Bylo změněno nastavení, které vyžaduje restart serveru" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Nevyřízené migrace" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Počet nevyřízených migrací databáze" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Název instance serveru" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Textový popisovač pro instanci serveru" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Použít název instance" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Použít název instance v liště" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Omezit zobrazování `o aplikaci`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Zobrazovat okno `o aplikaci` pouze superuživatelům" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Jméno společnosti" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Interní název společnosti" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Základní URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Základní URL pro instanci serveru" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Výchozí měna" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Vyberte základní měnu pro cenové kalkulace" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Podporované měny" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Seznam podporovaných kódů měn" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Interval aktualizace měny" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dny" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Plugin aktualizace měny" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Plugin pro aktualizaci měn k použití" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Stáhnout z URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Povolit stahování vzdálených obrázků a souborů z externích URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limit velikosti stahování" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximální povolená velikost stahování vzdáleného obrázku" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent použitý ke stažení z adresy URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Povolit přepsání user-agenta používaného ke stahování obrázků a souborů z externí adresy URL (ponechte prázdné pro výchozí)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Přísná validace URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Vyžadovat specifikaci schématu při ověřování adres URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Vyžadovat potvrzení" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Vyžadovat výslovné potvrzení uživatele pro určitou akci." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Hloubka stromu" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Výchozí hloubka stromu pro zobrazení stromu. Hlubší úrovně lze načítat líně podle potřeby." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Interval kontroly aktualizací" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak často kontrolovat aktualizace (nastavte na nulu pro vypnutí)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatické Zálohování" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Povolit automatické zálohování databáze a mediálních souborů" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Interval automatického zálohování" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Zadejte počet dní mezi automatickými zálohovými událostmi" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interval mazání úloh" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Výsledky úloh na pozadí budou odstraněny po zadaném počtu dní" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Interval odstranění protokolu chyb" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Záznamy chyb budou odstraněny po zadaném počtu dní" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Interval pro odstranění oznámení" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Uživatelská oznámení budou smazána po zadaném počtu dní" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Podpora čárových kódů" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Povolit podporu pro skenování čárových kódů ve webovém rozhraní" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Zpoždění vstupu čárového kódu" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Doba zpoždění zpracování vstupu čárového kódu" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Podpora webové kamery pro čárové kódy" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Povolit skenování čárových kódů přes webovou kameru v prohlížeči" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Revize dílu" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Povolit pole revize pro díl" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Povolit odstranění ze sestavy" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Povolit odstranění dílů, které jsou použity v sestavě" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulární vzorec výrazu pro odpovídající IPN dílu" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Povolit duplicitní IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Povolit více dílům sdílet stejný IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Povolit editaci IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Povolit změnu IPN při úpravách dílu" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopírovat data BOM dílu" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopírovat data BOM ve výchozím nastavení při duplikování dílu" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopírovat data parametrů dílu" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopírovat data parametrů ve výchozím nastavení při duplikování dílu" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopírovat zkušební data dílu" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Kopírovat testovací data ve výchozím nastavení při duplikování dílu" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopírovat šablony parametrů kategorie" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Šablona" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Díly jsou ve výchozím nastavení šablony" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Sestava" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Díly lze ve výchozím nastavení použít jako dílčí komponenty" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Možné zakoupit" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Prodejné" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Nehmotné (virtuální)" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Zobrazit Import v zobrazeních" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Zobrazit průvodce importem v některých zobrazeních dílu" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Zobrazit související díly" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Zobrazit související díly pro díl" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Počáteční údaje zásob" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Povolit vytvoření počátečního skladu při přidání nové části" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Počáteční údaje dodavatele" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Formát zobrazení jména dílu" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formát pro zobrazení názvu dílu" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Výchozí ikona kategorie dílu" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Vynutit jednotky parametru" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Pokud jsou uvedeny jednotky, musí hodnoty parametrů odpovídat zadaným jednotkám" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimální počet desetinných míst u cen" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maximální počet desetinných míst u cen" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Použít ceny dodavatele" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Zahrnout cenová zvýhodnění dodavatelů do celkových cenových kalkulací" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Přepsání historie nákupu" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historické ceny nákupních objednávek mají přednost před cenovými zvýhodněními dodavatele" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Použít ceny skladových položek" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Použít ceny z ručně zadaných skladových údajů pro cenové kalkulace" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Stáří cen skladových položek" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Vyloučit skladové položky starší než tento počet dní z cenových kalkulací" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Použít cenu varianty" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Zahrnutí cen variant do celkových cenových kalkulací" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Pouze aktivní varianty" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Pro výpočet ceny varianty použijte pouze aktivní díly varianty" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Interval přestavby cen" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Počet dní před automatickou aktualizací cen dílů" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interní ceny" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Povolit interní ceny pro díly" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Přepis interní ceny" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Pokud jsou k dispozici, interní ceny mají přednost před výpočty cenového rozpětí" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Povolit tisk štítků" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Povolit tisk štítků z webového rozhraní" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI rozlišení štítků" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Rozlišení DPI při generování obrazových souborů, které se dodávají do zásuvných modulů pro tisk štítků" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Povolit reporty" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Povolit generování reportů" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Režim ladění chyb" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Generovat reporty v režimu ladění (HTML výstup)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Zaznamenávat chyby reportů" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Velikost stránky" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Výchozí velikost stránky pro PDF reporty" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Povolit testovací reporty" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Povolit generování zkušebních reportů" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Připojit testovací reporty" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globálně unikátní sériová čísla" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Sériová čísla pro skladové položky musí být globálně unikátní" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Automaticky vyplnit sériová čísla" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Automaticky vyplnit sériová čísla ve formulářích" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Odstranit vyčerpané zásoby" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Určuje výchozí chování při vyčerpání zásoby položky" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Šablona kódu dávky" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Šablona pro generování výchozích kódů dávky pro skladové položky" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Expirace zásob" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Povolit funkci expirace zásob" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Prodat prošlé zásoby" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Povolit prodej prošlých zásob" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Čas stáří zásob" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Počet dnů, po které jsou skladové položky považovány za nevyužité před uplynutím doby expirace" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Sestavit prošlé zásoby" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Povolit sestavování s prošlými zásobami" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kontrola vlastnictví zásob" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Umožnit kontrolu vlastnictví nad skladovými místy a položkami" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Výchozí ikona umístění zásob" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Výchozí ikona umístění zásob (prázdné znamená bez ikony)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Zobrazit nainstalované skladové položky" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Zobrazit nainstalované skladové položky ve skladových tabulkách" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Zkontrolovat BOM při instalaci položek" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Nainstalované skladové položky musí existovat v BOM pro nadřazený díl" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Povolit převod mimo sklad" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Umožnit přesun skladových položek, které nejsou na skladě, mezi skladovými místy" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Referenční vzor objednávky sestavy" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Vyžadovat odpovědného vlastníka" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blokovat, dokud testy neprojdou" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Povolit vracení objednávek" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Referenční vzor návratové objednávky" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Úprava dokončených návratových objednávek" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Umožnit úpravu návratových objednávek po jejich dokončení" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Referenční vzor prodejní objednávky" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole prodejní objednávky" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Výchozí přeprava prodejní objednávky" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Povolit vytvoření výchozí přepravy s prodejními objednávkami" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Úprava dokončených prodejních objednávek" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Umožnit úpravy prodejních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "Označit odeslané objednávky jako dokončené" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Prodejní objednávky označené jako odeslané se automaticky dokončí a obejdou stav „odesláno“" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Referenční vzor nákupní objednávky" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Úprava dokončených nákupních objednávek" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Automatické dokončování nákupních objednávek" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automaticky označit nákupní objednávky jako kompletní, jakmile jsou přijaty všechny řádkové položky" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Povolit pole zapomenutého hesla" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Povolení funkce zapomenutého hesla na přihlašovacích stránkách" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Povolit registrace" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Povolit samoregistraci uživatelů na přihlašovacích stránkách" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Povolit SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Povolit SSO na přihlašovacích stránkách" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Povolit SSO registraci" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Povolit samoregistraci uživatelů prostřednictvím SSO na přihlašovacích stránkách" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Vyžadován e-mail" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Požadovat, aby uživatel při registraci zadal e-mail" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Automaticky vyplnit SSO uživatele" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automaticky vyplnit údaje o uživateli z údajů o účtu SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Mail dvakrát" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Při registraci dvakrát požádat uživatele o zadání e-mailu" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Heslo dvakrát" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Při registraci dvakrát požádat uživatele o heslo" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Povolené domény" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Omezit registraci na určité domény (oddělené čárkou a začínající @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Skupina při registraci" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Vynutit MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Uživatelé musí používat vícefaktorové zabezpečení." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Zkontrolovat pluginy při spuštění" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Zkontrolovat aktualizace pluginů" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Povolit integraci URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Povolit plug-inům přidávat trasy URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Povolit integraci navigace" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Povolit integrování pluginů do navigace" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Povolit integraci aplikací" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Povolit pluginům přidávát aplikace" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Povolit integraci plánu" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Povolit pluginům spouštění naplánovaných úloh" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Povolit integraci událostí" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Povolit pluginům reagovat na interní události" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Povolit kódy projektů" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Povolit kódy projektů pro sledování projektů" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Funkce inventury" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Povolit funkci inventury pro evidenci stavu zásob a výpočet hodnoty zásob" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Vyloučit externí umístění" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Vyloučit skladové položky na externích místech z výpočtů inventury" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Perioda automatické inventury" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Počet dní mezi automatickým záznamem inventury (pro vypnutí nastavte nulu)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Interval mazání reportů" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Reporty o inventuře se po určitém počtu dní vymažou" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Zobrazit celá jména uživatelů" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Povolit data zkušební stanice" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skrýt neaktivní díly ve výsledcích zobrazených na domovské stránce" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Zobrazit odebírané díly" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Zobrazit odebírané díly na domovské stránce" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Zobrazit odebírané kategorie" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Zobrazit nejnovější díly" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Zobrazit nejnovější díly na domovské stránce" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Zobrazit neplatné kusovníky (BOMy)" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Zobrazit kusovníky (BOMy), které čekají na ověření, na domovské stránce" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Zobrazit nedávné změny zásob" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Zobrazit nedávno změněné skladové položky na domovské stránce" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Zobrazit nízký stav zásob" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Zobrazit na domovské stránce položky s nízkou skladovou zásobou" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Zobrazit vyčerpané zásoby" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Zobrazit vyčerpané položky na domovské stránce" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Zobrazit potřebné zásoby" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Zobrazit skladové položky potřebné pro sestavy na domovské stránce" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Zobrazit expirované zásoby" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Zobrazit expirované skladové položky na domovské stránce" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Zobrazit neaktuální zásoby" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Zobrazit neaktuální skladové položky na domovské stránce" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Zobrazit nevyřízené sestavy" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Zobrazit nevyřízené sestavy na domovské stránce" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Zobrazit sestavy po splatnosti" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Zobrazit sestavy po splatnosti na domovské stránce" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Zobrazit nevyřízené PO" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Zobrazit nevyřízené PO na domovské stránce" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Zobrazit PO po splatnosti" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Zobrazit PO po splatnosti na domovské stránce" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Zobrazit nevyřízené SO" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Zobrazit nevyřízené SO na domovské stránce" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Zobrazit SO po splatnosti" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Zobrazit SO po splatnosti na domovské stránce" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Zobrazit čekající zásilky SO" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Zobrazit čekající zásilky SO na domovské stránce" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Zobrazit novinky" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Zobrazit novinky na domovské stránce" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Zobrazení štítků na řádku" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Zobrazit štítky PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Výchozí tiskárna štítků" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Konfigurovat tiskárnu štítků, která má být vybrána jako výchozí" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Zobrazení reportů na řádku" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Zobrazit reporty PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Hledat díly" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Zobrazit díly v náhledu hledání" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Hledat díly dodavatele" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Zobrazit díly dodavatele v náhledu hledání" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Vyhledávání dílů výrobce" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Zobrazit díly výrobce v náhledu hledání" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Hledat kategorie" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Zobrazit kategorie dílů v náhledu hledání" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Hledat zásoby" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Zobrazit skladové položky v náhledu hledání" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Skrýt nedostupné skladové položky" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Vyloučit skladové položky, které nejsou dostupné z okna náhledu hledání" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Hledat umístění" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Zobrazit skladová umístění v náhledu hledání" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Hledat společnosti" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Zobrazit společnosti v náhledu hledání" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Hledat objednávky sestav" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Zobrazit objednávky sestav v náhledu hledání" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Hledat nákupní objednávky" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Zobrazit nákupní objednávky v náhledu hledání" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Vyloučit neaktivní nákupní objednávky" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Vyloučit neaktivní nákupní objednávky z okna náhledu vyhledávání" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Hledat prodejní objednávky" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Zobrazit prodejní objednávky v náhledu hledání" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Vyloučit neaktivní prodejní objednávky" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Vyloučit neaktivní prodejní objednávky z okna náhledu vyhledávání" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Vyhledávání vrácených objednávek" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Vyloučit neaktivní vrácené objednávky" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Vyloučit neaktivní vrácené objednávky z okna náhledu vyhledávání" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Náhled výsledků vyhledávání" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Počet výsledků, které se mají zobrazit v každé části okna náhledu vyhledávání" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex hledání" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Povolit regulární výrazy ve vyhledávacích dotazech" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Vyhledávání celého slova" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Zobrazit množství ve formulářích" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Zobrazit dostupné množství dílů v některých formulářích" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Klávesa Escape zavře formuláře" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Zavřít modální formuláře pomocí klávesy escape" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Pevná navigační lišta" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Pozice navigační lišty je pevně nastavena na horní okraj obrazovky" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferovaný formát pro zobrazení datumů" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Plánování dílů" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Zobrazit informace o plánování dílů" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventura dílu" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zobrazit informace o skladových zásobách dílů (pokud je povolena funkce inventury)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Délka textu v tabulce" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximální délka textu v zobrazeních tabulek" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Přijímat zprávy o chybách" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Dostávat oznámení o systémových chybách" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Poslední použité tiskárny" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Uložte poslední použité tiskárny pro uživatele" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Uživatel" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Množství cenové slevy" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Jednotková cena při stanoveném množství" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Koncový bod" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Koncový bod, ve kterém je tento webhook přijímán" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Název tohoto webhooku" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Je tento webhook aktivní" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token pro přístup" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Tajný klíč" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Sdílený tajný klíč pro HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID zprávy" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unikátní identifikátor pro tuto zprávu" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Hostitel" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Hostitel, od kterého byla tato zpráva přijata" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Záhlaví" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Záhlaví této zprávy" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Tělo" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Tělo zprávy" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Koncový bod, na kterém byla zpráva přijata" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Pracoval na" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Byla práce na této zprávě dokončena?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "ID" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Název" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Odkaz" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Zveřejněno" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Souhrn" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Přečteno" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Byla tato novinka přečtena?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "Byla tato novinka přečtena?" msgid "Image" msgstr "Obrazek" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Soubor obrázku" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "Cílový typ modelu pro tento obrázek" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "Cílové ID modelu pro tento obrázek" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Název jednotky musí být platný identifikátor" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Název jednotky" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Volitelný symbol jednotky" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definice" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Příloha" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Chybějící soubor" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentář" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "Komentář přílohy" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "Datum nahrání" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "Datum, kdy byl soubor nahrán" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Velikost souboru" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Velikost souboru v bytech" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "Uveden neplatný typ modelu pro přílohu" @@ -3869,7 +3941,7 @@ msgstr "{verbose_name} zrušeno" msgid "A order that is assigned to you was canceled" msgstr "Objednávka, která je vám přidělena, byla zrušena" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "Typ modelu" msgid "User does not have permission to create or edit attachments for this model" msgstr "Uživatel nemá oprávnění k vytváření nebo úpravám příloh pro tento model" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "Minimální počet míst nesmí být větší než maximální počet míst" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "Maximální počet míst nesmí být menší než minimální počet míst" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Prázdná doména není povolena." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Neplatný název domény: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Kontaktní e-mailová adresa" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakt" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Výchozí měna používaná pro tuto společnost" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adresa" @@ -4228,223 +4300,212 @@ msgstr "Doručovací poznámky pro interní použití" msgid "Link to address information (external)" msgstr "Odkaz na informace o adrese (externí)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Výrobce dílu" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Základní díl" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Zvolte díl" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Výrobce" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Vyberte výrobce" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL pro odkaz na díl externího výrobce" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Popis dílu výrobce" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Název parametru" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Hodnota" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Hodnota parametru" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Jednotky" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Jednotky parametru" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Díl dodavatele" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Jednotky balení musí být kompatibilní s jednotkami základních dílů" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Jednotky balení musí být větší než nula" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Dodavatel" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Vyberte dodavatele" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Skladová evidence dodavatele" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Je tento díl dodavatele aktivní?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Vyberte díl výrobce" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Adresa URL pro odkaz na externí díl dodavatele" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Popis dílu dodavatele" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Poznámka" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "základní cena" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Balení" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Balení dílu" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Počet kusů v balení" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Celkové množství dodávané v jednom balení. Pro jednotlivé položky ponechte prázdné." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "více" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Objednat více" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Množství dostupné od dodavatele" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Dostupnost aktualizována" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Datum poslední aktualizace údajů o dostupnosti" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "Skladem" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Neaktivní" @@ -4526,17 +4587,17 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Zákazník" @@ -4586,7 +4647,7 @@ msgstr "Vytvořit nového dodavatele dílu" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nová díl dodavatele" @@ -4599,7 +4660,7 @@ msgstr "Výrobce dílů" msgid "Create new manufacturer part" msgstr "Vytvořit nového výrobce dílu" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nový výrobce dílu" @@ -4613,7 +4674,7 @@ msgstr "Dodavatelský sklad" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Nová nákupní objednávka" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Výrobci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Objednávka dílů" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Odstranit díl výrobce" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Interní díl" @@ -4734,7 +4795,7 @@ msgstr "Nejsou k dispozici žádné informace o výrobci" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Dodavatelé" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Přidat parametr" @@ -4791,7 +4852,7 @@ msgstr "Akce týkající se dílu dodavatele" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Objednávka dílů" @@ -4824,12 +4885,12 @@ msgstr "Vymazat dodavatele dílu" msgid "No supplier information available" msgstr "Nejsou k dispozici žádné informace o dodavateli" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "Číslo zboží (SKU)" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Sklad dílu dodavatele" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Vytvořit novou položku skladu" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nová skladová položka" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "Aktualizovat dostupnost dílu" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Skladové položky" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "Počet kopií, které se mají tisknout pro každý štítek" msgid "Connected" msgstr "Připojeno" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Neznámý" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Společnost, od které se položky objednávají" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Reference dodavatele" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Referenční kód objednávky dodavatele" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "přijal" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Datum vystavení" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Datum vystavení objednávky" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Datum dokončení objednávky" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Dodavatel dílu se musí shodovat s dodavatelem PO" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Množství musí být kladné" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Společnost, jíž se položky prodávají" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Reference zákazníka " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Referenční kód objednávky zákazníka" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Datum odeslání" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "odesláno společností" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "Objednávka je již dokončena" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "Objednávka je již zrušena" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Pouze otevřená objednávka může být označena jako kompletní" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Množství položky" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Odkaz na řádkovou položku" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Poznámky k řádkovým položkám" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cílové datum pro tuto řádkovou položku (pro použití cílového data z objednávky ponechte prázdné)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Popis řádkové položky (nepovinné)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Kontext" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Dodatečný kontext pro tento řádek" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Cena za jednotku" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Dodavatelský díl musí odpovídat dodavateli" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "smazáno" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Díl dodavatele" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Doručeno" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Počet přijatých položek" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Nákupní cena" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Jednotková nákupní cena" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Kde si kupující přeje, aby byla tato položka uložena?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuální díl nelze přiřadit k prodejní objednávce" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prodejní cena" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Jednotková prodejní cena" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Odesláno" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Odeslané množství" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Datum odeslání" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Datum doručení" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "Datum doručení zásilky" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Kontroloval(a)" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Uživatel, který zkontroloval tuto zásilku" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Doprava" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Číslo zásilky" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Sledovací číslo" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Informace o sledování zásilky" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Číslo faktury" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Referenční číslo přiřazené faktury" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Zásilka již byla odeslána" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Zásilka nemá žádné přidělené skladové položky" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Zásobní položka nebyla přiřazena" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Nelze přidělit skladovou položku na řádek bez dílu" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Přidělené množství nesmí překročit množství zásob" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Množství musí být 1 pro serializovanou skladovou položku" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Prodejní objednávka neodpovídá zásilce" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Zásilka neodpovídá prodejní objednávce" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Řádek" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Odkaz na zásilku z prodejní objednávky" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Položka" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Vyberte skladovou položku pro přidělení" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Zadejte množství pro přidělení zásob" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "Reference návratové objednávky" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "Společnost, od které se vrací položky" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Stav návratové objednávky" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "K návratové objednávce lze přiřadit pouze serializované položky" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Vyberte položku pro vrácení od zákazníka" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Datum přijetí" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "Datum přijetí této vrácené položky" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Výsledek" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "Výsledky pro tuto položku" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "Náklady spojené s návratem nebo opravou této položky" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "Dokončené řádky" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Objednávku nelze zrušit" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Povolit uzavření objednávky s neúplnými řádkovými položkami" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "Objednávka má nedokončené řádkové položky" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Objednávka není otevřena" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "Automatická cena" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Automaticky vypočítat nákupní cenu na základě údajů o dílech dodavatele" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Měna nákupní ceny" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "Sloučit položky" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Sloučit položky se stejným dílem, místem určení a cílovým datem do jedné řádkové položky" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Interní číslo dílu" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Musí být uveden díl dodavatele" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Objednávka musí být zadána" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Dodavatel musí odpovídat objednávce" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Objednávka musí odpovídat dodavateli" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Řádková položka" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Řádková položka neodpovídá nákupní objednávce" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Vyberte cílové umístění pro přijaté položky" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Zadat kód dávky pro příchozí položky skladu" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Zadat sériová čísla pro příchozí skladové položky" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Čárový kód" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Naskenovaný čárový kód" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Tento čárový kód se již používá" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "U sledovatelných dílů musí být uvedeno celočíselné množství" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Musí být uvedeny řádkové položky" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "Místo určení musí být specifikováno" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Hodnoty dodaných čárových kódů musí být unikátní" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Ztraceno" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Vráceno" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Zpracovává se" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Vrátit zpět" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Oprava" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Náhrada" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Vrácení peněz" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Odmítnout" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Díly" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategorie dílu" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie dílů" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Výchozí umístění dílů v této kategorii" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Díly nesmějí být přímo zařazeny do strukturované kategorie, ale mohou být zařazeny jako podkategorie." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Výchozí klíčová slova pro díly v této kategorii" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Název dílu" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Kategorie dílu" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "ID dílu nebo název dílu" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Jedinečná hodnota ID dílu" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Hodnota IPN dílu" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Vyberte nadřazený díl" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Aktualizovat díly" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Aktualizovat cenu pro díl" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Kusovník" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "Činnost nebyla specifikována" msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "V karanténě" msgid "Legacy stock tracking entry" msgstr "Původní položka sledování zásob" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Položka zásob vytvořena" @@ -10027,7 +10173,7 @@ msgstr "Rozdělit od nadřazené položky" msgid "Split child item" msgstr "Rozdělit podřazený předmět" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sloučené položky zásob" @@ -10047,7 +10193,7 @@ msgstr "Výstup objednávky sestavení dokončen" msgid "Build order output rejected" msgstr "Výstup objednávky sestavení byl odmítnut" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Spotřebováno podle objednávky" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Sestavení" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Odstranit" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ano" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index f09572f176..7448a386e4 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -56,29 +56,30 @@ msgstr "Fejloplysninger kan findes i admin panelet" msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Bemærkninger" @@ -91,118 +92,122 @@ msgstr "Værdi '{name}' vises ikke i mønsterformat" msgid "Provided value does not match required pattern: " msgstr "Den angivne værdi matcher ikke det påkrævede mønster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Indtast adgangskode" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Indtast ny adgangskode" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekræft adgangskode" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekræft ny adgangskode" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Gammel adgangskode" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mail (igen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekræftelse af e-mailadresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du skal indtaste den samme e-mail hver gang." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering er deaktiveret." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Serienummer streng er tom" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikeret serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Ingen serienumre fundet" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata skal være et python dict objekt" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata felt, til brug af eksterne plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown noter (valgfri)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "URL til ekstern billedfil" msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontrol af baggrundstjeneste mislykkedes" @@ -726,59 +731,59 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Valgfri" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Sporet" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allokeret" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Tilgængelig" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Produktionsordre" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Produktionsordre" msgid "Build Orders" msgstr "Produktionsordrer" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Ugyldigt valg for overordnet produktion" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Byggeordre enhed kan ikke ændres" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produktion" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Produktionsordre som er tildelt denne produktion" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Vælg dele til produktion" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Salgsordrereference" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordre, som er tildelt denne produktion" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kilde Lokation" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Vælg lokation for lager, som skal benyttes til denne produktion (lad feltet stå tomt for at benytte vilkårligt lager)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Destinations Placering" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Vælg placering, hvor de færdige elementer vil blive gemt" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Produktions antal" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Antal lagervarer som skal produceres" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Afsluttede elementer" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Antal lagervarer som er færdiggjort" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Produktions Status" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Produktions statuskode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch Kode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Oprettelsesdato" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Projekteret afslutningsdato" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Dato for afslutning" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "udført af" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Udstedt af" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link til ekstern URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Bygge Prioritet" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Prioritet af denne byggeordre" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bygningsordre {build} er fuldført" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Ikke tilladt" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Accepter som forbrugt af denne byggeordre" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Accepter Ikke tildelt" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter at lagervarer ikke er fuldt tildelt til denne byggeordre" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Accepter ufuldført" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Bygge linje" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Afventende" @@ -1647,16 +1677,21 @@ msgstr "Afventende" msgid "Production" msgstr "Produktion" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Annulleret" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Fuldført" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" @@ -1707,7 +1742,7 @@ msgstr "Vis QR-kode" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Bruger" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedhæftning" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Manglende fil" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Manglende eksternt link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Afsendt" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Mistet" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Returneret" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Igangværende" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Retur" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Reparér" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Erstat" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Refusion" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Afvis" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "I karantæne" msgid "Legacy stock tracking entry" msgstr "Forældet lager sporings post" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lager-element oprettet" @@ -10027,7 +10173,7 @@ msgstr "Opdel fra overordnet element" msgid "Split child item" msgstr "Opdel underordnet element" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Flettede lagervarer" @@ -10047,7 +10193,7 @@ msgstr "Byggeorder output fuldført" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brugt efter byggeordre" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 4ca44d3a74..683dc38578 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -56,29 +56,30 @@ msgstr "Fehlerdetails finden Sie im Admin-Panel" msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notizen" @@ -91,118 +92,122 @@ msgstr "Wert '{name}' hält das Musterformat nicht ein" msgid "Provided value does not match required pattern: " msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Passwort eingeben" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Neues Passwort eingeben" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Passwort wiederholen" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Neues Passwort bestätigen" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Altes Passwort" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-Mail (nochmal)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail Adresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplizierter Seriennummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ungültiger Gruppenbereich: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppenbereich {group} überschreitet die zulässige Menge ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ungültige Gruppensequenz: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Anzahl der eindeutigen Seriennummern ({len(serials)}) muss mit der Menge übereinstimmen ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" @@ -366,158 +371,158 @@ msgstr "[{site_name}] In App einloggen" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Fehler beim Ausführen der Plugin Validierung" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Name" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "Administrator" msgid "Is this user a superuser" msgstr "Ist dieser Benutzer ein Adminstrator" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiv" @@ -662,7 +667,7 @@ msgstr "URL der Remote-Bilddatei" msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" @@ -726,59 +731,59 @@ msgstr "Über InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Optional" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Verfügbar" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Bauauftrag" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Bauauftrag" msgid "Build Orders" msgstr "Bauaufträge" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Ungültige Wahl für übergeordneten Bauauftrag" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Verantwortlicher Benutzer oder Gruppe muss angegeben werden" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Teil in Bauauftrag kann nicht geändert werden" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenz" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Kurze Beschreibung des Baus (optional)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Eltern-Bauauftrag" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Teil" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Teil für den Bauauftrag wählen" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Auftrag Referenz" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Quell-Lagerort" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Ziel-Lagerort" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Bau-Anzahl" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Anzahl der zu bauenden Lagerartikel" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Fertiggestellte Teile" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Anzahl der fertigen Lagerartikel" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Bauauftrags-Status" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Fertigstellungsdatum" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Aufgegeben von" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Verantwortlicher Benutzer" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externer Link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Bauauftrags-Priorität" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Priorität dieses Bauauftrags" msgid "Project Code" msgstr "Projektcode" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Projektcode für diesen Auftrag" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "Fehler beim Abladen der Aufgabe, um die Build-Allokation abzuschließen" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Bauauftrag {build} wurde fertiggestellt" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "kein Endprodukt angegeben" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Endprodukt bereits hergstellt" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Build Ausgabe {serial} hat nicht alle erforderlichen Tests bestanden" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Objekt bauen" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Name des Teils" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Endprodukt" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Dieses Endprodukt wurde bereits fertiggestellt" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seriennummer" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Seriennummer für dieses Endprodukt eingeben" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lagerort" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "Lagerort für Bauprodukt" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Seriennummern automatisch zuweisen" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "Seriennummern müssen für nachverfolgbare Teile angegeben werden" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Eine Liste von Endprodukten muss angegeben werden" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Lagerort für ausgemusterte Ausgänge" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Zuteilungen verwerfen" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Bestandszuteilung für ausgemusterte Endprodukte verwerfen" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Grund für das Verwerfen des Bauauftrages/der Bauaufträge" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Status" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Unvollständige Zuweisung akzeptieren" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "Zugewiesen Bestand verbrauchen" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "Verbrauche alle Bestände, die diesem Bauauftrag bereits zugewiesen wurden" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Unfertige Endprodukte entfernen" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Nicht erlaubt" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Als von diesem Bauauftrag verbraucht setzen" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Bestandszuordnung vor dem Abschluss dieses Bauauftrags freigeben" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Überbelegter Lagerbestand" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Wie sollen zusätzliche Lagerbestandteile, die dem Bauauftrag zugewiesen wurden, behandelt werden" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Der Bestand einiger Lagerartikel ist überbelegt" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Nicht zugewiesene akzeptieren" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Bauauftrag hat unvollständige Aufbauten" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Bauauftragsposition" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Endprodukt" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Bauauftragspositionsartikel" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Lagerort ausschließen" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Lagerartikel vom ausgewählten Ort ausschließen" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Wechselbares Lagerbestand" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Ersatzbestand" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Zuordnung von Ersatzteilen erlauben" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Optionale Positionen" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Optionale Stücklisten-Positionen dem Bauauftrag hinzufügen" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "Fehler beim Starten der automatischen Zuweisung" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Ortsname" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Verpackungen" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Teil-ID" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "Teil IPN" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Seriennummer" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "Zugewiesene Menge" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Verfügbare Menge" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Beschreibung des Teils" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Seriennummer" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "Zugewiesene Menge" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Verfügbare Menge" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Nachverfolgbar" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "Vererbt" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Varianten zulassen" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Stücklisten-Position" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Zugewiesener Bestand" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bestellt" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "In Produktion" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "Verfügbares Ersatzmaterial" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "Externes Lager" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ausstehend" @@ -1647,16 +1677,21 @@ msgstr "Ausstehend" msgid "Production" msgstr "in Arbeit" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Storniert" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Fertig" @@ -1684,8 +1719,8 @@ msgstr "Miniaturansicht" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode Aktionen" @@ -1696,7 +1731,7 @@ msgstr "Barcode Aktionen" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-Code anzeigen" @@ -1707,7 +1742,7 @@ msgstr "QR-Code anzeigen" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Barcode abhängen" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Barcode anhängen" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Bauauftrag bearbeiten" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Bauauftrag abbrechen" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Bauauftrag duplizieren" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Bauauftrag abbrechen" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Bauauftrag fertigstellen" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Baubeschreibung" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Bauauftrag ist bereit abgeschlossen zu werden" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Zieldatum" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Bauauftrag war fällig am %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Überfällig" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Fertiggestellte Endprodukte" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Auftrag" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Aufgegeben von" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorität" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Bauauftrag löschen" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Bauftrags-QR-Code" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Barcode mit Bauauftrag verknüpfen" @@ -1875,8 +1930,8 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Ziel-Lager" @@ -1890,21 +1945,21 @@ msgstr "Zugewiesene Teile" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Losnummer" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Erstellt" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Fertig" @@ -1987,7 +2042,11 @@ msgstr "Verbrauchte Bestände" msgid "Completed Build Outputs" msgstr "Fertiggestellte Endprodukte" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Fertiggestellte Endprodukte" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Anhänge" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Alle Zeilen wurden vollständig zugewiesen" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Neuer Bauauftrag" @@ -2037,15 +2096,20 @@ msgstr "Positionen" msgid "Incomplete Outputs" msgstr "Unfertige Endprodukte" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "Link" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Datei" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aktualisiert" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Zeitstempel der letzten Aktualisierung" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "Seiten-URL ist durch die Konfiguration gesperrt" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Eindeutiger Projektcode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projektbeschreibung" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Benutzer oder Gruppe verantwortlich für dieses Projekt" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Wert ist keine gültige Option" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ausstehende Migrationen" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Anzahl der ausstehenden Datenbankmigrationen" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Name der Serverinstanz" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Anzeige von `Über` einschränken" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Zeige das `Über` Fenster nur Administratoren" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Firmenname" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Verfügbare Währungen" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Liste der unterstützten Währungskürzel" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Währungsaktualisierungsintervall" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "Tage" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Währungs-Aktualisierungs-Plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Download-Größenlimit" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximal zulässige Größe für heruntergeladene Bilder" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Benutzer-Agent zum Herunterladen von Daten" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Strenge URL-Prüfung" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Erfordert die Schema-Spezifikation bei der Validierung von URLs" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Bestätigung verpflichtend" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Baumtiefe" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Prüfungsintervall aktualisieren" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatische Sicherung" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervall für automatische Sicherung" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Anzahl der Tage zwischen automatischen Sicherungen" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Aufgabenlöschinterval" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Löschintervall für Fehlerprotokolle" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Löschintervall für Benachrichtigungen" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Barcode-Eingabeverzögerung" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Verzögerungszeit bei Barcode-Eingabe" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Artikelrevisionen" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Revisions-Feld für Artikel aktivieren" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Löschen aus Baugruppe erlauben" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Erlaube das Löschen von Teilen, die in einer Baugruppe verwendet werden" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Vorlage" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponente" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Initialer Lagerbestand" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiale Lieferantendaten" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standardsymbol der Teilkategorie" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Parameter Einheiten durchsetzen" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Dezimalstellen für minimalen Preis" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Dezimalstellen für maximalen Preis" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Zulieferer-Preise verwenden" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Kaufverlauf überschreiben" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Lagerartikel-Preis verwenden" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Lagerartikelpreis Alter" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Variantenpreise verwenden" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Nur aktive Varianten" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervall für Neuberechnung von Preisen" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Interne Preisüberschreibung" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Berichtsfehler protokollieren" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Global einzigartige Seriennummern" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Seriennummern automatisch ausfüllen" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Seriennummern in Formularen automatisch ausfüllen" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Erschöpften Lagerartikel löschen" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel aufgebraucht ist" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Standardsymbol für Lagerort" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Zeige installierte Lagerartikel" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Prüfe BOM bei der Installation von Elementen" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Installierte Lagerbestandteile müssen im BOM für den übergeordneten Teil vorhanden sein" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Erlaube Verschieben von \"nicht auf Lager\" Bestand" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Lagerartikel, die nicht auf Lager sind, können zwischen Lagerstandorten übertragen werden" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Verantwortlicher Besitzer erforderlich" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blockieren bis Test bestanden" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Verhindert die Fertigstellung bis alle erforderlichen Tests bestanden sind" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Aufträge bearbeiten" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bearbeitung von Aufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "Versendete Bestellungen als abgeschlossen markieren" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "Als versendet markierte Aufträge werden automatisch abgeschlossen und überspringen den Status \"Versandt\"" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Bestellungen automatisch abschließen" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Bestellung automatisch als abgeschlossen markieren, wenn der Empfang aller Artikel bestätigt wurde" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "SSO Gruppensynchronisation aktivieren" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "SSO Gruppenschlüssel" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Nach Plugin-Aktualisierungen suchen" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Zeige ungültige Stücklisten" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximale Länge für Zeichenketten, die in Tabellenansichten angezeigt werden" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Zuletzt verwendete Druckmaschinen" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Benutzer" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Preis" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Host" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Body" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "ID" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Link" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Gelesen" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "Wurde diese Nachricht gelesen?" msgid "Image" msgstr "Bild" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anhang" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fehlende Datei" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Fehlender externer Link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "Upload Datum" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "Datum der hochgeladenen Datei" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Dateigröße" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Dateigröße in Bytes" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "Ungültiger Modelltyp für Anhang angegeben" @@ -3869,7 +3941,7 @@ msgstr "{verbose_name} storniert" msgid "A order that is assigned to you was canceled" msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Artikel erhalten" @@ -3957,27 +4029,27 @@ msgstr "Modelltyp" msgid "User does not have permission to create or edit attachments for this model" msgstr "Benutzer hat keine Berechtigung, Anhänge für dieses Modell zu erstellen oder zu bearbeiten" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Eine leere Domain ist nicht erlaubt." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ungültiger Domainname: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Kontakt-Email" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakt" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adresse" @@ -4228,223 +4300,212 @@ msgstr "Versandnotizen für interne Verwendung" msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "Teilenummer des Herstellers" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wert" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Einheiten" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Zuliefererteil" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Packeinheiten müssen größer als Null sein" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Ist dieser Lieferantenteil aktiv?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Notiz" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Verpackungen" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Packmenge" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "Vielfache" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Mehrere bestellen" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Verfügbare Menge von Lieferanten" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Datum des letzten Updates der Verfügbarkeitsdaten" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Standard-Währung für diesen Zulieferer" msgid "Company Name" msgstr "Firmenname" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "Auf Lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktiv" @@ -4526,17 +4587,17 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kunde" @@ -4586,7 +4647,7 @@ msgstr "Neues Zuliefererteil anlegen" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Neues Zuliefererteil" @@ -4599,7 +4660,7 @@ msgstr "Herstellerteile" msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" @@ -4613,7 +4674,7 @@ msgstr "Zulieferer-Bestand" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Hersteller" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Teil bestellen" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Herstellerteil löschen" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Internes Teil" @@ -4734,7 +4795,7 @@ msgstr "Keine Herstellerdaten verfügbar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Zulieferer" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parameter" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -4791,7 +4852,7 @@ msgstr "Zulieferer-Teil Aktionen" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Teil bestellen" @@ -4824,12 +4885,12 @@ msgstr "Zuliefererteil entfernen" msgid "No supplier information available" msgstr "Keine Lieferanteninformationen verfügbar" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "Lieferanten-Teilenummer" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Neuen Lagerartikel hinzufügen" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Neuer Lagerartikel" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "Verfügbarkeit der Teile aktualisieren" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Lagerartikel" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Wert" @@ -5010,7 +5071,7 @@ msgstr "Wert" msgid "Errors" msgstr "Fehler" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Gültig" @@ -5110,7 +5171,7 @@ msgstr "Anzahl der zu druckenden Kopien für jedes Label" msgid "Connected" msgstr "Verbunden" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Unbekannt" @@ -5202,21 +5263,21 @@ msgstr "Konfigurationstyp" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Gesamtpreis" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Bestellstatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Hat Preise" @@ -5224,41 +5285,41 @@ msgstr "Hat Preise" msgid "No matching purchase order found" msgstr "Keine passende Bestellung gefunden" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Bestellung" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "Bestellung abgeschlossen" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "Bestellung ausstehend" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Rücksendeauftrag" @@ -5286,7 +5347,7 @@ msgstr "Auftragsbeschreibung (optional)" msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Link auf externe Seite" @@ -5310,365 +5371,369 @@ msgstr "Ansprechpartner für diesen Auftrag" msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "Empfangen von" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "Versand von" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "Bestellung ist bereits abgeschlossen" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "Bestellung ist bereits storniert" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Kontext" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "gelöscht" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Empfangen" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Versendet" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Position" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Position" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "Ergebnis für dieses Zeilenelement" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "Abgeschlossene Positionen" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "Auftrag hat unvollständige Positionen" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Der Auftrag ist nicht offen" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "Automatische Preisgestaltung" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Kaufpreis automatisch basierend auf Lieferantenbestandsdaten berechnen" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "Elemente zusammenfügen" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Zusammenführen von Elementen mit dem gleichen Teil, Ziel- und Zieldatum zu einem Zeilenelement" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Zuliefererteil muss ausgewählt werden" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Bestellung muss angegeben sein" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Lieferant muss mit der Bestellung übereinstimmen" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Position" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Seriennummern für eingehende Lagerartikel" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Barcode" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Gescannter Barcode" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Barcode ist bereits in Verwendung" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "Ziel-Lagerort muss angegeben werden" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Barcode muss eindeutig sein" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Keine Sendungsdetails angegeben" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "Position ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Seriennummern zum Zuweisen eingeben" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "Sendung wurde bereits versandt" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "Sendung ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Folgende Serienummern konnten nicht gefunden werden" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "Folgende Seriennummern sind bereits zugewiesen" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "Artikel der Bestellzeile zurücksenden" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "Artikel entspricht nicht der Rücksendeschrift" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "Artikel wurde bereits erhalten" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "Artikel können nur bei laufenden Bestellungen empfangen werden" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "Verkaufspreis-Währung" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Verloren" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Zurückgegeben" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "In Bearbeitung" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Zurück" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Reparatur" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Ersetzen" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Rückerstattung" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Ablehnen" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Auftrag bearbeiten" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Bestellung stornieren" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Bestellung duplizieren" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Bestellung stornieren" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "Bestellung aufgeben" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Bestellung als vollständig markieren" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "Vorschaubild des Lieferanten" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Bestellreferenz" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Bestellungsbeschreibung" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Keine Lieferanteninformationen verfügbar" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Abgeschlossene Positionen" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Unvollständig" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Aufgegeben" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Gesamtsumme" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Gesamtkosten konnten nicht berechnet werden" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "Bestellung QR-Code" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "Barcode mit Bestellung verknüpfen" @@ -6056,12 +6127,12 @@ msgstr "Auswahl duplizieren" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Zeile entfernen" @@ -6162,31 +6233,31 @@ msgstr "Rücksendebericht drucken" msgid "Print packing list" msgstr "Paketliste drucken" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Kundenreferenz" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Gesamtkosten" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "QR-Code Bestellung zurückgeben" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "Barcode mit Rücksendung verknüpfen" @@ -6198,36 +6269,36 @@ msgstr "Bestelldetails" msgid "Print sales order report" msgstr "Auftragsbericht drucken" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Versandartikel" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "Als verschickt markieren" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Auftrag abschließen" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Abgeschlossene Sendungen" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "Auftrag QR-Code" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "Barcode mit Verkaufsauftrag verknüpfen" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Ausstehende Sendungen" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Aktionen" @@ -6272,21 +6343,21 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Version" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Schlüsselwörter" @@ -6298,7 +6369,7 @@ msgstr "Artikelbild" msgid "Category ID" msgstr "Kategorie-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategoriename" @@ -6311,11 +6382,11 @@ msgstr "Standard-Standortnummer" msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimaler Bestand" @@ -6323,19 +6394,19 @@ msgstr "Minimaler Bestand" msgid "Used In" msgstr "Benutzt in" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Im Bau" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maximale Kosten" @@ -6347,19 +6418,19 @@ msgstr "Eltern ID" msgid "Parent Name" msgstr "Name des übergeordneten Teils" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Teile" @@ -6376,126 +6447,130 @@ msgstr "Stücklisten-Position ID" msgid "Parent IPN" msgstr "Übergeordnete IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Höchster Preis" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "Markiert" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "Nach markierten Kategorien filtern" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "Ebenen" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "Filter nach Kategorietiefe" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "Oberste Ebene" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "Mehrstufig" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "Übergeordnetes" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "Nach übergeordneter Kategorie filtern" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "Baum ausschließen" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "Unterkategorien in der angegebenen Kategorie ausschließen" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "Ergebnisse" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Eingehende Bestellung" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Ausgehender Auftrag" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategorie" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "Verwendet" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Gesamtbestand" @@ -6504,784 +6579,785 @@ msgstr "Gesamtbestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Teile können nicht direkt einer strukturellen Kategorie zugeordnet werden, können aber untergeordneten Kategorien zugeordnet werden." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Symbol" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Sie können diese Teilekategorie nicht als strukturell festlegen, da ihr bereits Teile zugewiesen sind!" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "Dieses Teil kann nicht gelöscht werden, da es noch aktiv ist" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "Dieses Teil kann nicht gelöscht werden, da es in einem Bauauftrag verwendet wird" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Teil '{self}' kann in der Stückliste nicht für '{parent}' (rekursiv) verwendet werden" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Teil '{parent}' wird in der Stückliste für '{self}' (rekursiv) verwendet" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN muss mit Regex-Muster {pattern} übereinstimmen" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "Artikelbeschreibung (optional)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "Verantwortlicher Besitzer für dieses Teil" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Bericht" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Ungültiger Vorlagenname - es muss mindestens ein alphanumerisches Zeichen enthalten sein" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "Testvorlage mit demselben Schlüssel existiert bereits für Teil" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "Testschlüssel" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "Vereinfachter Schlüssel zum Test" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktiviert" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Benötigt" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "Checkbox-Parameter können keine Auswahl haben" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "Physikalische Einheiten für diesen Parameter" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "Ungültige Auswahl für Parameterwert" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Stufe" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "überprüft" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -7289,338 +7365,358 @@ msgstr "Doppelte Beziehung existiert bereits" msgid "Parent Category" msgstr "Übergeordnete Kategorie" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "Übergeordnete Teilkategorie" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Unter-Kategorien" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "Ergebnisse" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "Anzahl der Teile, die diese Vorlage verwenden" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Kategorie auswählen" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Originalteil" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Originalteil zum Duplizieren auswählen" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "Nicht zugewiesenes Lager" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "Alternatives Lager" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Vorhandenes Bild" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Dateiname eines vorhandenen Teilbildes" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Externen Bestand ausschließen" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Lagerartikel an externen Orten ausschließen" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Bericht generieren" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Teile aktualisieren" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Inventur-Funktionalität ist nicht aktiviert" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Mindestpreis Währung" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Berechneten Wert für maximalen Preis überschreiben" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Maximalpreis Währung" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Konnte nicht von den angegebenen Währungen in {default_currency} umrechnen" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Herstellbar" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Gesamtstückzahl" @@ -7666,65 +7762,65 @@ msgstr "Die Stückliste wurde zuletzt von %(checker)s am %(check_date)s kontroll msgid "This BOM has not been validated." msgstr "Die Stückliste wurde noch nicht kontrolliert." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Inventur für diese Teilekategorie durchführen" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Benachrichtigungen für diese Kategorie abonnieren" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategorieaktionen" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Kategorie bearbeiten" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Kategorie löschen" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Oberste Teil-Kategorie" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Teile (inklusive Unter-Kategorien)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Neues Teil" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Teil-Kategorie anlegen" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Neue Kategorie" @@ -7772,7 +7868,7 @@ msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Inventur" @@ -7784,101 +7880,105 @@ msgstr "Teil Test-Vorlagen" msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Teile-Notizen" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Teil Varianten" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Neue Variante anlegen" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "neue Variante anlegen" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Verknüpfte Teile" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Stückliste" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Export-Aktionen" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Stückliste exportieren" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Stücklisten-Bericht drucken" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Stücklisten-Aktionen" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Stückliste hochladen" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Stücklisten-Position hinzufügen" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Baugruppen" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Gefertigte Teile" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Bauauftragszuweisungen" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Zulieferer" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Teil-Hersteller" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Verknüpftes Teil" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" @@ -7913,13 +8013,13 @@ msgstr "Teile-Importvorlage herunterladen" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Format" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Dateiformat auswählen" @@ -7937,7 +8037,7 @@ msgstr "Benachrichtigungen für dieses Teil abonnieren" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label drucken" @@ -7947,7 +8047,7 @@ msgstr "Kosteninformationen ansehen" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -7959,7 +8059,7 @@ msgstr "Bestand zählen" msgid "Transfer part stock" msgstr "Teilbestand verschieben" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Teile Aktionen" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Minimaler Bestand" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Varianten" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Bestand" @@ -8158,7 +8258,7 @@ msgstr "Artikelpreise überschreiben" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Bearbeiten" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "Preise aktualisieren" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Kein Bestand" @@ -8332,100 +8432,108 @@ msgstr "Keine Aktion angegeben" msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Keine passenden Teiledaten gefunden" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Keine passenden Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Mehrere passende Zulieferteile gefunden" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Zulieferteil zugeordnet" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Keine Übereinstimmung für Zulieferbarcode" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Mehrere passende Elemente gefunden" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Kein passendes Element gefunden" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Lagerartikel stimmt nicht mit dem Element überein" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Lagerartikel der Bestellung zugeordnet" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Nicht genügend Informationen" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Mehrere passende Lieferantenteile für Barcode gefunden" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Mehrere Einkaufsaufträge gefunden mit '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Keine passende Bestellung für '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Bestellung entspricht nicht dem Lieferanten" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Ausstehender Artikel für Lieferantenteil konnte nicht gefunden werden" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Weitere Informationen zum Empfang des Zeilenelements erforderlich" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Erhaltene Bestellartikel" @@ -8433,51 +8541,59 @@ msgstr "Erhaltene Bestellartikel" msgid "Scanned barcode data" msgstr "Gescannte Barcode Daten" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Ordne Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Ordne erhaltene Artikel Bestellung zu" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Bestellung wurde nicht aufgegeben" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Ort für den Empfang von Artikeln" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Kann keinen strukturellen Standort auswählen" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Kundenauftrag zum Zuordnen von Artikeln zu" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Bestellung ist nicht ausstehend" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Artikel der Verkaufsbestellung zuweisen" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Sendung des Verkaufsauftrags zur Zuweisung von Artikeln gegen" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Sendung wurde bereits geliefert" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Zugewiesene Menge" @@ -8497,15 +8613,15 @@ msgstr "Fehler beim Rendern des Etikett als HTML" msgid "No items provided to print" msgstr "Keine Elemente zum Drucken übergeben" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Barcodes" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Bietet native Unterstützung für Barcodes" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "Bietet native Unterstützung für Barcodes" msgid "InvenTree contributors" msgstr "InvenTree Mitwirkende" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Benachrichtigungen" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installiert" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Fortschritt" @@ -9157,10 +9297,10 @@ msgstr "Lieferant gelöscht" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Stück-Preis" @@ -9173,8 +9313,10 @@ msgstr "Zusätzliche Positionen" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Summe" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Ergebnis" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "Kein Ergebnis" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seriennummer" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Die Bestandsdatei ist nicht vorhanden" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Bilddatei nicht gefunden" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image tag benötigt eine Bauteilinstanz" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image tag erfordert eine Firmeninstanz" @@ -9246,8 +9388,8 @@ msgstr "company_image tag erfordert eine Firmeninstanz" msgid "Location ID" msgstr "Standort-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Lagerortpfad" @@ -9279,7 +9421,7 @@ msgstr "Lieferant" msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "verbaut in" @@ -9304,9 +9446,9 @@ msgstr "Überprüfung erforderlich" msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "Unterorte in gefilterte Ergebnisse einbeziehen" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "Übergeordneter Ort" @@ -9346,7 +9488,7 @@ msgstr "Gültigkeitsdauer vor" msgid "Expiry date after" msgstr "Gültigkeitsdauer nach" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeiche msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Lagerstandort Typ" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Lagerstandorte Typen" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standardsymbol für alle Orte, die kein Icon gesetzt haben (optional)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Extern" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Standorttyp" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Standortart dieses Standortes" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Artikeltyp ('{self.supplier_part.part}') muss {self.part} sein" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Verbraucht von" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Bauauftrag der diesen Lagerartikel verbrauchte" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Menge darf die verfügbare Lagermenge ({self.quantity}) nicht überschreiten" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Packungsgröße beim Hinzufügen verwenden: Die definierte Menge ist die Anzahl der Pakete" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "abgelaufen" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Untergeordnete Objekte" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "Ziel-Bestand" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Optionales Notizfeld" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "Zu installierende Menge" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "Anzahl der zu verwendenden Artikel eingeben" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "Die zu verwendende Menge muss mindestens 1 sein" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "Die zu verwendende Menge darf die verfügbare Menge nicht überschreiten" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Wählen Sie einen Teil aus, zu dem dieser Lagerartikel geändert werden soll" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "Das ausgewählte Teil ist keine gültige Option für die Umwandlung" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Lagerartikel konnte nicht mit Zulieferteil zugewiesen werden" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "Ziel Lagerort für zurückgegebene Artikel" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "Lagerartikel auswählen, um den Status zu ändern" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "Keine Lagerartikel ausgewählt" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Unter-Lagerorte" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "Keine Änderung" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "Lagerartikel Status-Code" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -9971,7 +10117,7 @@ msgstr "In Quarantäne" msgid "Legacy stock tracking entry" msgstr "Alter Bestand-Verfolgungs-Eintrag" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerartikel erstellt" @@ -10027,7 +10173,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Lagerartikel zusammengeführt" @@ -10047,7 +10193,7 @@ msgstr "Endprodukt fertiggestellt" msgid "Build order output rejected" msgstr "Endprodukt abgelehnt" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Durch Bauauftrag verbraucht" @@ -10108,7 +10254,7 @@ msgstr "Lagerartikel-Notizen" msgid "Installed Stock Items" msgstr "Installierte Lagerartikel" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Lagerartikel installieren" @@ -10116,7 +10262,7 @@ msgstr "Lagerartikel installieren" msgid "Delete all test results for this stock item" msgstr "Alle Testergebnisse für diesen Lagerartikel löschen" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "zu Lagerort einscannen" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Druck Aktionen" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Bestand zählen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Bestand hinzufügen" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Bestand entfernen" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Bestand serialisieren" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Bestand verschieben" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Kunden zuweisen" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "Lagerartikel löschen" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Bauauftrag" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Nur Leserechte" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Zur nächsten Seriennummer wechseln" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Kein Lagerort gesetzt" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "Lagerartikel" @@ -10321,7 +10467,7 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" msgid "Convert Stock Item" msgstr "Lagerartikel umwandeln" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Zurück ins Lager" @@ -10333,84 +10479,84 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Inventur für diesen Lagerort durchführen" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Lagerort lokalisieren" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Lagerartikel per Barcode-Scan zu diesem Lagerort hinzufügen" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Lagerartikel einscannen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Lagerort hierher einscannen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Lagerort scannen" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Standortbericht drucken" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Lagerort-Aktionen" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Lagerort bearbeiten" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Lagerort löschen" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Oberster Lagerstandort" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Standortbesitzer" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "Lagerort Typ" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Neuer Lagerort" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "Lagerort" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "Lagerbehälter an diesen Ort eingescannt" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "Lagerort QR-Code" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "Barcode mit Lagerort verknüpfen" @@ -10786,7 +10932,7 @@ msgstr "Installationspfad" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Integriert" @@ -10796,7 +10942,7 @@ msgstr "Dies ist ein integriertes Plugin, das nicht deaktiviert werden kann" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Beispiel" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "Bewerten" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Löschen" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "Keine Projektcodes gefunden" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "gruppieren" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "Keine Kategorieparameter Vorlage gefunden" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Vorlage bearbeiten" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Vorlage löschen" @@ -10954,40 +11100,40 @@ msgstr "Vorlage löschen" msgid "Edit Category Parameter Template" msgstr "Kategorieparameter Vorlage bearbeiten" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "Kategorieparameter Vorlage löschen" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "Kategorieparameter Vorlage erstellen" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage erstellen" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Keine Lagerstandorttypen gefunden" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Anzahl der Standorte" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "Standorttyp bearbeiten" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "Standorttyp löschen" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "Standorttyp löschen" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Neuer Standorttyp" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Fehlerbericht senden" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Benötigte Menge" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Mindestmenge" @@ -11758,7 +11904,7 @@ msgstr "Dadurch wird der Link zu dem zugehörigen Barcode entfernt" msgid "Unlink" msgstr "Verknüpfung aufheben" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Lagerartikel entfernen" @@ -11948,7 +12094,7 @@ msgstr "Stückliste für Bauteile laden" msgid "Substitutes Available" msgstr "Ersatzteile verfügbar" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "Alternatives Lager erlaubt" @@ -11968,30 +12114,30 @@ msgstr "Stücklistenpreise sind vollständig" msgid "No pricing available" msgstr "Keine Preisinformation verfügbar" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "Externes Lager" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "Alternatives Lager und Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "Alternatives Lager einschließen" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "Ersatzteillager einschließen" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Verbrauchsartikel" @@ -12023,7 +12169,7 @@ msgstr "Stückliste anzeigen" msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Benötigtes Teil" @@ -12071,13 +12217,13 @@ msgstr "Bauauftrag ist unvollständig" msgid "Complete Build Order" msgstr "Bauauftrag fertigstellen" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Nächste verfügbare Seriennummer" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Letzte Seriennummer" @@ -12129,13 +12275,13 @@ msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfer msgid "Deallocate Stock Items" msgstr "Lagerartikel entfernen" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Endprodukte auswählen" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Mindestens ein Endprodukt muss ausgewählt werden" @@ -12143,288 +12289,288 @@ msgstr "Mindestens ein Endprodukt muss ausgewählt werden" msgid "Selected build outputs will be marked as complete" msgstr "Ausgewählte Endprodukte werden als vollständig markiert" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Endprodukt" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "Ausgewählte Endprodukte werden als Ausschuss markiert" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Ausschuss wird als verworfen markiert" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "Zugewiesene Lagerbestände werden nicht mehr verfügbar sein" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "Der Fertigstellungsstatus des Bauauftrags wird nicht angepasst" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Ausschuss Endprodukte" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "Ausgewählte Endprodukte werden gelöscht" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "Endprodukte werden dauerhaft gelöscht" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "Zugewiesene Lagerartikel werden in den Bestand zurückgeführt" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Endprodukte entfernen" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "Keine Allokationen für Bauauftrag gefunden" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Endprodukte fertigstellen" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Ausschuss" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Endprodukte löschen" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "Endprodukt" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "Endprodukte" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Endprodukt-Aktionen" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Keine aktiven Endprodukte gefunden" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Zugewiesene Positionen" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Erforderliche Prüfungen" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Teile auswählen" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "Sie müssen mindestens einen Teil für die Zuweisung auswählen" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "Alle Teile zugeordnet" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "Alle ausgewählten Teile wurden vollständig zugeordnet" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Wählen Sie den Quellort aus (leer lassen, um von allen Standorten zu nehmen)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Lagerartikel für Bauauftrag zuweisen" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "Keine passenden Lagerstandorte" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Keine passenden Lagerartikel" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "Automatische Lagerzuordnung" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Lagerartikel werden automatisch diesem Bauauftrag zugewiesen, entsprechend den angegebenen Richtlinien" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Wenn ein Lagerort angegeben ist, wird der Lagerbestand nur von diesem Ort zugewiesen" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Wenn der Lagerbestand als austauschbar gilt, wird er vom ersten Standort zugewiesen, an dem er gefunden wird" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Wenn ein Ersatzlager zugelassen ist, wird dieses verwendet, wenn das Primärteil nicht vorrätig ist" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Lagerartikel zuordnen" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "Keine Bauaufträge zur Suchanfrage" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Zuordnung bearbeiten" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "Zuordnung entfernen" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "Bauauftragsposition" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "Bauauftragspositionen" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "Keine Bauauftragspositionen gefunden" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Menge" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "Ausreichender Bestand vorhanden" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Verbrauchsartikel" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Verfolgtes Objekt" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "Zuweisung von nachverfolgbaren Artikeln zu einzelnen Bauprodukten" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Bestand bauen" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Bestand zuweisen" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "Bestands-Zuordnung löschen" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "Parameter löschen" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Teile bestellen" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Vorlagenteil" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Parameter löschen" @@ -12669,45 +12815,45 @@ msgstr "Staffelpreis bearbeiten" msgid "Delete price break" msgstr "Staffelpreis löschen" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "wahr" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "falsch" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Filter auswählen" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Etiketten drucken" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Berichte drucken" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "Tabelle herunterladen" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "Tabelle neu laden" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Neuen Filter hinzufügen" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Alle Filter entfernen" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Filter erstellen" @@ -12749,39 +12895,39 @@ msgstr "Fehler in Formular" msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Eingabe löschen" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Spalten auswählen" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEIN" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Wahr" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "Falsch" @@ -12866,7 +13012,7 @@ msgstr "Keine Nachrichten gefunden" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "ID" @@ -12894,395 +13040,404 @@ msgstr "Keine ungelesenen Benachrichtigungen" msgid "Notifications will load here" msgstr "Benachrichtigungen erscheinen hier" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "Zusätzliche Position hinzufügen" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "Bestellung exportieren" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "Position duplizieren" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "Postion bearbeiten" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "Position löschen" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "Keine Postionen gefunden" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "Postionen duplizieren" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "Position bearbeiten" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "Position löschen" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Teileigenschaften" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Erstellungsoptionen für Teile" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "Duplizierungsoptionen für Teile" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "Icon (optional) - alle verfügbaren Icons einsehbar auf" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "Teil-Kategorie hinzufügen" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "Neue Kategorie nach dieser Kategorie erstellen" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "Artikelkategorie erstellt" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "Teilekategorie bearbeiten" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "Möchten Sie diese Artikel-Kategorie wirklich löschen?" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "In übergeordnete Kategorie verschieben" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "Aktion für Teile in dieser Kategorie" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "Aktion für Unterkategorien" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Teil erstellen" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "Weiteres Teil nach diesem erstellen" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "Teil erfolgreich angelegt" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Teil bearbeitet" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "Teil-Variante anlegen" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Aktives Teil" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "Teil kann nicht gelöscht werden, da es derzeit aktiv ist" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "Das Löschen dieses Teils kann nicht rückgängig gemacht werden" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Alle Lagerartikel für dieses Teil werden gelöscht" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "Dieses Teil wird von allen Stücklisten entfernt" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "Alle Hersteller- und Lieferanteninformationen für dieses Teil werden gelöscht" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Teil löschen" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "Du hast Benachrichtigungen zu diesem Artikel abonniert" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "Benachrichtigungen zu diesem Artikel abonnieren" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "Du erhältst keine Benachrichtigungen zu diesem Artikel mehr" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "Die Stückliste zu validieren markiert jede Position als gültig" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "Stückliste prüfen" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "Überprüfte Stückliste" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "Kein Lagerbestand verfügbar" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Bedarf" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Einheit" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Virtuelles Teil" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Abonniertes Teil" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "Erstellung eines neuen Inventurberichts planen." -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "Nach Fertigstellung steht der Inventurbericht zum Download zur Verfügung." -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "Inventurbericht erstellen" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "Inventurbericht geplant" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "Keine Inventurinformationen verfügbar" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "Inventureintrag bearbeiten" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "Inventureintrag löschen" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "Keine Teileparametervorlagen gefunden" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "Teileparametervorlage bearbeiten" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "Alle Parameter mit Verweis auf diese Vorlage werden ebenfalls gelöscht" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "Teileparametervorlage löschen" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "Diese Position ist überfällig" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "Position empfangen" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "Teilebeziehung löschen" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "Wähle die Kategorie für die ausgewählten Teile" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "Teilekategorie auswählen" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Kategorie wählen" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "Teil" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "Teile" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Keine Kategorien" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Als Liste anzeigen" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Als Raster anzeigen" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Keine Unterkategorien gefunden" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Als Baum anzeigen" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Unterkategorien laden" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Abonnierte Kategorie" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "Keine passenden Testvorlagen gefunden" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "Ergebnisse" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "Dieser Test ist für ein übergeordnetes Teil definiert" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "Vorlage für Testergebnis bearbeiten" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "Vorlage für Testergebnis löschen" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "Kein Datum angegeben" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "Das angegebene Datum liegt in der Vergangenheit" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Spekulativ" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "Keine Zeitplanung für dieses Teil vorhanden" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "Fehler beim Abrufen der Zeitplanungsinformationen für dieses Teil" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "Geplante Lagermengen" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Maximale Menge" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "Minimaler Lagerbestand" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "Zu erhaltende Menge" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "Bestellnummer" msgid "Quantity to Receive" msgstr "Zu erhaltende Menge" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Empfang der Artikel bestätigen" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "Bestellartikel erhalten" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "Artikel-Barcode scannen" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Scanne den Barcode am erhaltenen Artikel (darf nicht mit einem existierenden Lagerartikel übereinstimmen)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "Ungültige Barcode-Daten" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Bestellung ist überfällig" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "Alle ausgewählten Positionen werden gelöscht" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "Ausgewählte Positionen löschen?" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "Position duplizieren" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Position löschen" @@ -13665,16 +13820,16 @@ msgstr "Kein Rücksendeauftrag gefunden" msgid "Invalid Customer" msgstr "Ungültiger Kunde" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "Rücksendeauftragspositionen erhalten" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "Artikel als empfangen markieren" @@ -13833,7 +13988,7 @@ msgstr "Bestandszuordnung löschen" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "An den Kunden versandt" @@ -13891,517 +14046,521 @@ msgstr "Ergebnisse minimieren" msgid "Remove results" msgstr "Ergebnisse entfernen" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Lagerartikel serialisieren" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "Lager-Serialisierung bestätigen" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "Standardsymbol für alle Orte, die kein Symbol haben (optional) - Erkunden Sie alle verfügbaren Symbole auf" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "Lagerorttyp hinzufügen" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "Lagerort bearbeiten" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "Lagerort hinzufügen" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "Weiteren Lagerort nach diesem erstellen" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "Lagerort erstellt" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "Soll dieser Lagerort gelöscht werden?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "Zum übergeordneten Lagerort verschieben" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "Lagerort löschen" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Aktion für Lagerartikel in diesem Lagerort" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "Aktion für Unter-Lagerorte" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "Dieser Teil kann nicht serialisiert werden" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Lagerartikel dupliziert" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Lagerartikel duplizieren" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Soll dieser Lagerartikel gelöscht werden?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Lagerartikel löschen" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Lagerartikel bearbeiten" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Weiteres Teil nach diesem erstellen" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "Neuen Lagerartikel erstellen" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "Mehrere Lagerartikel wurden erstellt" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "Seriennummer finden" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Seriennummer eingeben" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "Eine Seriennummer eingeben" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Keine passende Seriennummer" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "Mehr als ein übereinstimmendes Ergebnis gefunden" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "Bestand Zuweisung bestätigen" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "Lagerbestand einem Kunden zuweisen" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Bestandszusammenführung bestätigen" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Lagerartikel zusammenführen" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Zählen" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Entnehmen" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Wähle mindestens einen verfügbaren Lagerartikel aus" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Bestandsanpassung bestätigen" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Test bestanden" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "Test gestartet" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "Test beendet" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "Testergebnis löschen" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "In Produktion" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Bestandsstatus ändern" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Bestand zusammenführen" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "Lagerartikel" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "Zu Lagerort einscannen" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Lager-Aktionen" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "Installierte Artikel laden" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Lagerartikel wird produziert" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Lagerartikel wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Lagerartikel wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Serialisierter Lagerartikel wurde zugewiesen" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Lagerartikel wurde vollständig zugewiesen" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Lagerartikel wurde teilweise zugewiesen" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Lagerartikel in anderem Artikel verbaut" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Lagerbestand wurde durch einen Bauauftrag verbraucht" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Lagerartikel läuft demnächst ab" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Lagerartikel wurde zurückgewiesen" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Lagerartikel ist verloren" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Lagerartikel ist zerstört" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Aufgebraucht" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Bestandswert" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerartikel gefunden" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "Untergeordnete Lagerorte laden" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Details" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Keine Änderungen" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "Teileinformationen nicht verfügbar" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "Lagerort existiert nicht mehr" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "Bauauftrag existiert nicht mehr" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "Auftrag existiert nicht mehr" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "Rücksendebestellung existiert nicht mehr" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "Lagerartikel existiert nicht mehr" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "Keine installierten Artikel" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Lagerartikel deinstallieren" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Zu deinstallierende Lagerartikel auswählen" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Einen anderen Lagerartikel in dieses Teil installieren" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Der Lagerartikel ist mit einem Teil verknüpft das in der Stückliste für diesen Lagerartikel ist" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "Dieser Lagerartikel ist aktuell vorhanden" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "Der Lagerbestand ist nicht bereits in einem anderen Bestand installiert" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Der Lagerbestand wird entweder mit einem Batch-Code oder mit Seriennummer verfolgt" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "Teil zur Installation auswählen" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Wählen Sie einen oder mehrere Bestandteile aus" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Lagerartikel auswählen" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Bestandsstatus ändern" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Hat Projektcode" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Bestellstatus" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Ausstehend" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Mir zugewiesen" @@ -14436,12 +14595,12 @@ msgstr "Hat Lagerorttyp" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Unterkategorien einschließen" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Abonniert" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "Losnummer" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Aktive Teile" @@ -14584,56 +14743,64 @@ msgstr "Test bestanden" msgid "Include Installed Items" msgstr "Installierte Teile einschließen" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Bauauftrags Status" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Verfügbarer Lagerbestand" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Hat Einheiten" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "Teil hat definierte Einheiten" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "Auf Lager" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Kaufbar" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "Hat Inventureinträge" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Hat Auswahlen" @@ -14906,6 +15073,14 @@ msgstr "E-Mail-Einstellungen" msgid "Email settings not configured" msgstr "E-Mail-Einstellungen nicht konfiguriert" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 89825fc470..760e422fc0 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -56,29 +56,30 @@ msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλμα msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Σημειώσεις" @@ -91,118 +92,122 @@ msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μο msgid "Provided value does not match required pattern: " msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Εισάγετε κωδικό" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Εισάγετε νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Επιβεβαιώστε τον κωδικό πρόσβασης" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Επιβεβαιώστε τον νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Παλιός κωδικός πρόσβασης" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mail (ξανά)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Επιβεβαίωση διεύθυνσης email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Διπλότυπο serial number" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Μη έγκυρο εύρος ομάδας: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Το εύρος της ομάδας {group} υπερβαίνει την επιτρεπόμενη ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Μη έγκυρη ακολουθία ομάδας: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({len(serials)}) πρέπει να αντιστοιχεί στην ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Σύνδεση στην εφαρμογή" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "Διεύθυνση URL του αρχείου απομακρυσμένη msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" @@ -726,59 +731,59 @@ msgstr "Σχετικά με το InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Προαιρετικό" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Υπό παρακολούθηση" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Κατανεμημένο" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Διαθέσιμο" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Σειρά Κατασκευής" msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Μη έγκυρη επιλογή για γονική κατασκευή" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Εξάρτημα από εντολή κατασκευής δεν μπορεί να αλλάξει" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Αναφορά" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Σύντομη περιγραφή της κατασκευής (προαιρετικό)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Γονική Κατασκευή" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Εξάρτημα" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Επιλέξτε τμήμα για κατασκευή" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Κωδικός Παραγγελίας Πωλήσεων" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Επιλέξτε τοποθεσία από την οποία θα γίνει απόθεμα, για αυτή την κατασκευή (αφήστε κενό για να πάρετε από οποιαδήποτε θέση αποθήκευσης)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Τοποθεσία Προορισμού" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Επιλέξτε την τοποθεσία όπου θα αποθηκευτούν τα ολοκληρωμένα στοιχεία" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Ποσότητα Κατασκευής" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Αριθμός αντικειμένων για κατασκευή" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Ολοκληρωμένα αντικείμενα" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Αριθμός αντικειμένων αποθέματος που έχουν ολοκληρωθεί" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Κατάσταση Κατασκευής" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Ημερομηνία Δημιουργίας" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Ημερομηνία ολοκλήρωσης στόχου" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "ολοκληρώθηκε από" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Εκδόθηκε από" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Υπεύθυνος" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την εντολή κατασκευής" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Προτεραιότητα Κατασκευής" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Προτεραιότητα αυτής της εντολής κατασκευής" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Προτεραιότητα αυτής της εντολής κατασκ msgid "Project Code" msgstr "Κωδικός Έργου" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Κωδικός έργου για αυτήν την εντολή κατασκευής" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Η παραγγελία κατασκευής {build} έχει ολοκληρωθεί" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Αντικείμενο κατασκευής" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Αντικείμενο κατασκευής" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Κατασκευή Εξόδου" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Τοποθεσία" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Πρέπει να παρέχεται μια λίστα με τα αποτελέσματα κατασκευής" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Θέση αποθέματος για απορριφθείσες παραγωγές" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Απόρριψη Κατανομών" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Απορρίψτε τυχόν κατανομές αποθέματος για παραγωγές που έχουν απορριφθεί" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Αιτία απόρριψης προϊόντων κατασκευής" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Τοποθεσία για ολοκληρωμένα προϊόντα κατασκευής" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Κατάσταση" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Αποδοχή Ελλιπούς Δέσμευσης" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Ολοκλήρωσε τα προϊόντα εάν το απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Αφαίρεση Ατελείωτων Προϊόντων" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Διαγράψτε τυχόν προϊόντα κατασκευής που δεν έχουν ολοκληρωθεί" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Δεν επιτρέπεται" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Αποδοχή ως κατανάλωση για αυτή την παραγγελία κατασκευής" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Αποδέσμευση πριν από την ολοκλήρωση αυτής της παραγγελίας κατασκευής" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Υπερ-δεσμευμένο Απόθεμα" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Πώς θέλετε να χειριστείτε το επιπλέον απόθεμα που έχει δεσμευτεί στην παραγγελία κατασκευής" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Μερικά στοιχεία αποθέματος έχουν υπερ-δεσμευτεί" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Αποδοχή Μη Δεσμευμένων" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Αποδεχτείτε ότι αντικείμενα αποθέματος δεν έχουν δεσμευτεί πλήρως σε αυτή την παραγγελία κατασκευής" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Το απαιτούμενο απόθεμα δεν έχει δεσμευτεί πλήρως" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Αποδοχή Μη Ολοκληρωμένων" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Αποδεχτείτε ότι ο απαιτούμενος αριθμός προϊόντων κατασκευής δεν έχει ολοκληρωθεί" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ολοκληρωθεί" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Η παραγγελία κατασκευής έχει ελλιπή προϊόντα" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Γραμμή Κατασκευής" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Προϊόν Κατασκευής" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Το προϊόν κατασκευής πρέπει να δείχνει στην ίδια κατασκευή" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Αντικείμενο Γραμμής Κατασκευής" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Σε εκκρεμότητα" @@ -1647,16 +1677,21 @@ msgstr "Σε εκκρεμότητα" msgid "Production" msgstr "Παραγωγή" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Ακυρώθηκε" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Ολοκληρώθηκε" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Αποσύνδεση Barcode" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Σύνδεση Barcode" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Επεξεργασία Κατασκευής" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Ακύρωση κατασκευής" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Αντιγραφή Κατασκευής" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Ακύρωση κατασκευής" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Διαγραφή Κατασκευής" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Ολοκλήρωση Κατασκευής" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Περιγραφή Κατασκευής" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Δεν έχουν δημιουργηθεί προϊόντα για αυτήν την εντολή κατασκευής" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Η εντολή Κατασκευής είναι έτοιμη για να επισημανθεί ως ολοκληρωμένη" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Η Εντολή Κατασκευής δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν εκκρεμή προϊόντα" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Ο απαιτούμενος αριθμός προϊόντων δεν έχει ακόμα ολοκληρωθεί" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Το Απόθεμα δεν έχει κατανεμηθεί πλήρως σε αυτή την Εντολή Κατασκευής" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Επιθυμητή Προθεσμία" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Αυτή η κατασκευή είχε προθεσμία %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Εκπρόθεσμη" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Ολοκληρωμένα Προϊόντα" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Ολοκληρωμένα Προϊόντα" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Εντολές Πώλησης" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Εκδόθηκε από" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Προτεραιότητα" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Διαγραφή Εντολής Κατασκευής" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Κωδικός QR Εντολής Κατασκευής" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Σύνδεση Barcode με την Εντολή Κατασκευής" @@ -1875,8 +1930,8 @@ msgstr "Προέλευση Αποθέματος" msgid "Stock can be taken from any available location." msgstr "Το απόθεμα μπορεί να ληφθεί από οποιαδήποτε διαθέσιμη τοποθεσία." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Προορισμός" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Χρήστης" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Σύνδεσμος" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Συνημμένο" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Το αρχείο λείπει" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Σχόλιο" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Αποστάλθηκε" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Χάθηκε" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Επιστράφηκε" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Σε Εξέλιξη" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Επιστροφή" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Επισκευή" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Αντικατάσταση" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Επιστροφή χρημάτων" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Απόρριψη" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "Σε Καραντίνα" msgid "Legacy stock tracking entry" msgstr "Καταχώρηση παλαιού αποθέματος" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Το αντικείμενο αποθεμάτων δημιουργήθηκε" @@ -10027,7 +10173,7 @@ msgstr "Έγινε διαχωρισμός από το γονεϊκό αρχεί msgid "Split child item" msgstr "Διαχωρίστηκε θυγατρικό στοιχείο" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Έγινε συγχώνευση αποθεμάτων" @@ -10047,7 +10193,7 @@ msgstr "Η έξοδος της σειράς κατασκευής ολοκληρ msgid "Build order output rejected" msgstr "Η εντολή κατασκευής απορρίφθηκε" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Κατανάλωση με εντολή κατασκευής" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Κατασκευή" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index 91418799ac..b95a3cdfa1 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,26 +57,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -89,118 +93,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -364,158 +372,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -565,16 +573,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -606,7 +614,7 @@ msgstr "" msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "" @@ -660,7 +668,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -724,59 +732,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -787,72 +795,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:127 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:134 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:141 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:155 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:166 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:233 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:245 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:254 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:259 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -864,184 +872,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:267 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:272 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:276 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:281 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:285 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:290 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:294 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:298 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:301 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:305 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:307 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:311 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:315 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:335 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:336 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:339 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:345 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:354 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:363 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:373 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:376 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1049,66 +1057,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:384 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:617 build/models.py:682 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:645 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:871 build/models.py:956 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:874 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:877 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1391 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1118,526 +1126,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1406 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1486 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1495 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1517 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1576 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1649 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1662 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1670 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1671 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1645,16 +1678,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1682,8 +1720,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1694,7 +1732,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1705,7 +1743,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1718,7 +1756,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1742,88 +1780,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1833,31 +1883,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1873,8 +1931,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1888,21 +1946,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1911,8 +1969,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1985,7 +2043,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1995,25 +2057,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2035,15 +2097,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2101,1654 +2168,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3758,94 +3833,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3867,7 +3942,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3955,27 +4030,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4082,9 +4157,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4129,9 +4204,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4226,222 +4301,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:569 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:655 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:846 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4453,7 +4518,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4464,8 +4529,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4523,17 +4588,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4583,7 +4648,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4596,7 +4661,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4610,7 +4675,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4633,7 +4698,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4705,7 +4770,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4720,8 +4785,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4731,7 +4796,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4740,19 +4805,23 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:196 -#: templates/js/translated/part.js:1428 +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4784,7 +4853,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4817,12 +4886,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4831,13 +4900,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4855,29 +4924,33 @@ msgstr "" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -4915,87 +4988,91 @@ msgstr "" msgid "Invalid export format" msgstr "" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 msgid "Data file to import" msgstr "" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 msgid "Import status" msgstr "" -#: importer/models.py:93 +#: importer/models.py:94 msgid "Field Defaults" msgstr "" -#: importer/models.py:100 +#: importer/models.py:101 msgid "Field Overrides" msgstr "" -#: importer/models.py:222 +#: importer/models.py:108 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:230 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 msgid "Import Session" msgstr "" -#: importer/models.py:418 +#: importer/models.py:426 msgid "Field" msgstr "" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5011,35 +5088,39 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "" -#: importer/serializers.py:90 +#: importer/serializers.py:91 msgid "Invalid field defaults" msgstr "" -#: importer/serializers.py:103 +#: importer/serializers.py:104 msgid "Invalid field overrides" msgstr "" -#: importer/serializers.py:164 -msgid "Rows" -msgstr "" - -#: importer/serializers.py:165 -msgid "List of row IDs to accept" +#: importer/serializers.py:117 +msgid "Invalid field filters" msgstr "" #: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 msgid "No rows provided" msgstr "" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 msgid "Row has already been completed" msgstr "" @@ -5091,7 +5172,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5183,21 +5264,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5205,41 +5286,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5267,7 +5348,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5291,365 +5372,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5657,208 +5742,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:492 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:531 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:686 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1716 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1745 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5903,87 +5988,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6037,12 +6128,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6143,31 +6234,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6179,36 +6270,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6222,8 +6313,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6253,21 +6344,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6279,7 +6370,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6292,11 +6383,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6304,19 +6395,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6328,19 +6419,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6357,126 +6448,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6485,784 +6580,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7270,338 +7366,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7647,65 +7763,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7753,7 +7869,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7765,101 +7881,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7894,13 +8014,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7918,7 +8038,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7928,7 +8048,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7940,7 +8060,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8008,7 +8128,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8097,13 +8217,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8139,7 +8259,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8149,7 +8269,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8221,9 +8341,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8301,7 +8421,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8313,100 +8433,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8414,51 +8542,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8478,15 +8614,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8497,6 +8633,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8743,7 +8903,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8911,7 +9071,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9039,7 +9199,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9138,10 +9298,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9154,8 +9314,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9172,11 +9334,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9197,29 +9359,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9227,8 +9389,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9260,7 +9422,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9285,9 +9447,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9303,7 +9465,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9327,7 +9489,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9353,316 +9515,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9734,193 +9896,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9952,7 +10118,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10008,7 +10174,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10028,7 +10194,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10089,7 +10255,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10097,7 +10263,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10110,8 +10276,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10120,17 +10286,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10139,12 +10305,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10185,7 +10351,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10198,7 +10364,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10243,7 +10409,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10270,7 +10436,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10302,7 +10468,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10314,84 +10480,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10767,7 +10933,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10777,7 +10943,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10880,9 +11046,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10903,7 +11069,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10922,12 +11088,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10935,40 +11101,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10991,7 +11157,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -11305,7 +11471,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11560,7 +11726,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11574,7 +11740,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11739,7 +11905,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11929,7 +12095,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11949,30 +12115,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12004,7 +12170,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12052,13 +12218,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12110,13 +12276,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12124,288 +12290,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12552,7 +12718,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12569,34 +12735,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12650,45 +12816,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12726,43 +12892,43 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12847,7 +13013,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12875,395 +13041,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13477,7 +13652,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13525,73 +13700,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13646,16 +13821,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13814,7 +13989,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13872,517 +14047,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14417,12 +14596,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14464,7 +14643,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14565,56 +14744,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14887,6 +15074,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 4e72c48fe6..bd99f0cf50 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -56,29 +56,30 @@ msgstr "Detalles del error pueden encontrarse en el panel de administración" msgid "Enter date" msgstr "Ingrese la fecha" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notas" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ingresa tu contraseña" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ingrese su nueva contraseña" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Confirma la contraseña" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Confirma la nueva contraseña" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Contraseña anterior" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (de nuevo)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Confirmación de correo electrónico" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "El correo electrónico debe coincidir." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "El registro ha sido desactivado." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Número de serie duplicado" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Rango de grupo inválido: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "El rango del grupo {group} supera la cantidad permitida ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Secuencia de grupo inválida: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "No se encontraron números de serie" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Los números de serie únicos ({len(serials)}) deben coincidir con la cantidad ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Elimine etiquetas HTML de este valor" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "El servidor respondió con un código de estado no válido" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "La imagen descargada exedió el tamaño máximo" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Iniciar sesión en la aplicación" msgid "Email" msgstr "Correo electrónico" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Error al ejecutar la validación del plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notas (opcional)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 91418799ac..b95a3cdfa1 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,26 +57,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -89,118 +93,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -364,158 +372,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -565,16 +573,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -606,7 +614,7 @@ msgstr "" msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "" @@ -660,7 +668,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -724,59 +732,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -787,72 +795,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:127 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:134 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:141 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:155 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:166 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:233 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:245 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:254 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:259 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -864,184 +872,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:267 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:272 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:276 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:281 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:285 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:290 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:294 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:298 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:301 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:305 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:307 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:311 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:315 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:335 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:336 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:339 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:345 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:354 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:363 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:373 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:376 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1049,66 +1057,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:384 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:617 build/models.py:682 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:645 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:871 build/models.py:956 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:874 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:877 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1391 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1118,526 +1126,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1406 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1486 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1495 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1517 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1576 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1649 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1662 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1670 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1671 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1645,16 +1678,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1682,8 +1720,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1694,7 +1732,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1705,7 +1743,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1718,7 +1756,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1742,88 +1780,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1833,31 +1883,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1873,8 +1931,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1888,21 +1946,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1911,8 +1969,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1985,7 +2043,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1995,25 +2057,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2035,15 +2097,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2101,1654 +2168,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3758,94 +3833,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3867,7 +3942,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3955,27 +4030,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4082,9 +4157,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4129,9 +4204,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4226,222 +4301,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:569 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:655 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:846 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4453,7 +4518,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4464,8 +4529,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4523,17 +4588,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4583,7 +4648,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4596,7 +4661,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4610,7 +4675,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4633,7 +4698,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4705,7 +4770,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4720,8 +4785,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4731,7 +4796,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4740,19 +4805,23 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" msgstr "" -#: company/templates/company/manufacturer_part.html:196 -#: templates/js/translated/part.js:1428 +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4784,7 +4853,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4817,12 +4886,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4831,13 +4900,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4855,29 +4924,33 @@ msgstr "" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -4915,87 +4988,91 @@ msgstr "" msgid "Invalid export format" msgstr "" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 msgid "Data file to import" msgstr "" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 msgid "Import status" msgstr "" -#: importer/models.py:93 +#: importer/models.py:94 msgid "Field Defaults" msgstr "" -#: importer/models.py:100 +#: importer/models.py:101 msgid "Field Overrides" msgstr "" -#: importer/models.py:222 +#: importer/models.py:108 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:230 msgid "Some required fields have not been mapped" msgstr "" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 msgid "Import Session" msgstr "" -#: importer/models.py:418 +#: importer/models.py:426 msgid "Field" msgstr "" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5011,35 +5088,39 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "" -#: importer/serializers.py:90 +#: importer/serializers.py:91 msgid "Invalid field defaults" msgstr "" -#: importer/serializers.py:103 +#: importer/serializers.py:104 msgid "Invalid field overrides" msgstr "" -#: importer/serializers.py:164 -msgid "Rows" -msgstr "" - -#: importer/serializers.py:165 -msgid "List of row IDs to accept" +#: importer/serializers.py:117 +msgid "Invalid field filters" msgstr "" #: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 msgid "No rows provided" msgstr "" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 msgid "Row has already been completed" msgstr "" @@ -5091,7 +5172,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5183,21 +5264,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5205,41 +5286,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5267,7 +5348,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5291,365 +5372,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5657,208 +5742,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:492 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:531 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:547 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:686 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1716 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1745 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5903,87 +5988,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6037,12 +6128,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6143,31 +6234,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6179,36 +6270,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6222,8 +6313,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6253,21 +6344,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6279,7 +6370,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6292,11 +6383,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6304,19 +6395,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6328,19 +6419,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6357,126 +6448,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6485,784 +6580,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7270,338 +7366,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7647,65 +7763,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7753,7 +7869,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7765,101 +7881,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7894,13 +8014,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7918,7 +8038,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7928,7 +8048,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7940,7 +8060,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8008,7 +8128,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8097,13 +8217,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8139,7 +8259,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8149,7 +8269,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8221,9 +8341,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8301,7 +8421,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8313,100 +8433,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8414,51 +8542,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8478,15 +8614,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8497,6 +8633,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8743,7 +8903,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8911,7 +9071,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9039,7 +9199,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9138,10 +9298,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9154,8 +9314,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9172,11 +9334,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9197,29 +9359,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9227,8 +9389,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9260,7 +9422,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9285,9 +9447,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9303,7 +9465,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9327,7 +9489,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9353,316 +9515,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9734,193 +9896,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9952,7 +10118,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10008,7 +10174,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10028,7 +10194,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10089,7 +10255,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10097,7 +10263,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10110,8 +10276,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10120,17 +10286,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10139,12 +10305,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10185,7 +10351,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10198,7 +10364,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10243,7 +10409,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10270,7 +10436,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10302,7 +10468,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10314,84 +10480,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10767,7 +10933,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10777,7 +10943,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10880,9 +11046,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10903,7 +11069,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10922,12 +11088,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10935,40 +11101,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -10991,7 +11157,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -11305,7 +11471,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11560,7 +11726,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11574,7 +11740,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11739,7 +11905,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11929,7 +12095,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11949,30 +12115,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12004,7 +12170,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12052,13 +12218,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12110,13 +12276,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12124,288 +12290,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12552,7 +12718,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12569,34 +12735,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12650,45 +12816,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12726,43 +12892,43 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12847,7 +13013,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12875,395 +13041,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13477,7 +13652,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13525,73 +13700,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13646,16 +13821,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13814,7 +13989,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13872,517 +14047,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14417,12 +14596,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14464,7 +14643,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14565,56 +14744,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14887,6 +15074,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index eb0fce7016..6dcd4e07a3 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:48\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Märkmed" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Salasõna" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Sisesta uus parool" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Kinnitage parool" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Kinnita uut parooli" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vana parool" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Meili (uuesti)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-posti aadressi kinnitus" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registreerimine on ajutiselt väljalülitatud." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Ühenduse viga" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Esines tõrge" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Tootekood" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "Tarnija osa number" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Osa ID" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Seerianumber" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Seerianumber" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ootel" @@ -1647,16 +1677,21 @@ msgstr "Ootel" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Katkestatud" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Valmis" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Loodud" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Grupp puudub" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Taaskäivitamine on vajalik" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automaatne varundus" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vöötkoodi tugi" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 73d666109d..34f73b8853 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -56,29 +56,30 @@ msgstr "جزئیات خطا را می توان در پنل مدیریت پیدا msgid "Enter date" msgstr "تاریخ را وارد کنید" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "یادداشت" @@ -91,118 +92,122 @@ msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گی msgid "Provided value does not match required pattern: " msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "رمز عبور را وارد کنید" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "گذرواژه جدید را وارد کنید" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "تأیید کلمه‌ی عبور" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "گذرواژه جدید را تایید کنید" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "رمز عبور قدیمی" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "ایمیل (دوباره وارد کنید)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "تایید آدرس ایمیل" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "هر بار باید همان ایمیل را تایپ کنید." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "آدرس فایل تصویری از راه دور" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "مرجع سفارش فروش" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "منبع محل" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "مقصد" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 02f8161ea5..af86da71ba 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -56,29 +56,30 @@ msgstr "Virheen tiedot löytyvät hallintapaneelista" msgid "Enter date" msgstr "Anna päivämäärä" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Merkinnät" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Anna salasana" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Anna uusi salasana" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Vahvista salasana" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Vahvista uusi salasana" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vanha salasana" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Sähköposti (uudelleen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Sähköpostiosoitteen vahvistus" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Annettu määrä on virheellinen" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tyhjä sarjanumero" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikaatti sarjanumero" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Sarjanumeroita ei löytynyt" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Yhteysvirhe" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Palvelin vastasi virheellisellä tilakoodilla" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Kuva on liian iso" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Kuvan lataus ylitti enimmäiskoon" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Etäpalvelin palautti tyhjän vastauksen" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "Sähköposti" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metatietojen tulee olla python dict objekti" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Liitännäisen metadata" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Virheellisesti muotoiltu malli" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Viitekenttä ei voi olla tyhjä" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Viitenumero on liian suuri" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Polku" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Viivakoodin Tiedot" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiivinen" @@ -662,7 +667,7 @@ msgstr "Kuvatiedoston URL" msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "Tietoja InvenTree:stä" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Saatavilla" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Osa" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ulkoinen linkki" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Määrä" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Varastotuote" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sarjanumerot" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Sijainti" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Tila" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Ei sallittu" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Valmistajan osanumero" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Sarjanumero" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Sarjanumero" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Seurattavissa" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Odottaa" @@ -1647,16 +1677,21 @@ msgstr "Odottaa" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Peruttu" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Valmis" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Poista viivakoodin linkitys" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Linkitä viivakoodi" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Myöhässä" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioriteetti" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Valmis" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Liitteet" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Tiedosto" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Päivitetty" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Viimeisimmän päivityksen aikaleima" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ei ryhmää" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Uudelleenkäynnistys vaaditaan" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Yrityksen nimi" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Yrityksen sisäinen nimi" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Oletusvaluutta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "päivää" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automaattinen varmuuskopionti" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automaattisen varmuuskopioinnin aikaväli" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Viivakoodituki" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponentti" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Ostettavissa" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Sisäiset hinnat" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Sisäisen hinnan ohitus" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sivun koko" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Täytä sarjanumerot automaattisesti" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Salli salasananpalautus" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Salli rekisteröinti" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Salli SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Salli SSO kirjautumissivuilla" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Salli SSO rekisteröinti" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Sähköposti vaaditaan" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Sähköpostiosoite kahdesti" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Salasana kahdesti" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Sallitut verkkotunnukset" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Pakota MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Näytä uutiset" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Käyttäjä" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Hinta" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Isäntä" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Linkki" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Julkaisija" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Kuva" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Liite" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Puuttuva tiedosto" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Puuttuva ulkoinen linkki" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentti" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Verkkotunnus ei saa olla tyhjä." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Virheellinen verkkotunnus: {domain}" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakti" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Osoite" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Valmistaja" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Valitse valmistaja" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Arvo" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Toimittaja" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Valitse toimittaja" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Toimittajan varastonimike" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Valitse valmistajan osa" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Muistiinpano" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Asiakas" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Hinta yhteensä" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Lähetetty" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Viivakoodi" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Kadonnut" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Palautettu" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Kesken" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Muokkaa tilausta" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Peru tilaus" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Kopioi tilaus" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Peru tilaus" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Kokonaiskustannukset" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Kokonaiskustannuksia ei voitu laskea" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Poista rivi" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Toiminnot" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Avainsanat" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategoria" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Oletus avainsanat" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Kuvake" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Päivämäärä" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Raportti" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Käytössä" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Valmistajan osanumero" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Luo raportti" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Muokkaa kategoriaa" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Muokkaa kategoriaa" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Poista kategoria" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Poista kategoria" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Luo uusi osa" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Uusi osa" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Muokkaa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sarjanumero" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "Asetettu karanteeniin" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Varastotuote luotu" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Siirry seuraavaan sarjanumeroon" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Muokkaa sijaintia" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Poista sijainti" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Uusi sijainti" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Poista" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "kopioi leikepöydälle" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Sähköpostiasetukset" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Kyllä" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index 8b49c143ff..979520063f 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -56,29 +56,30 @@ msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'admin msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notes" @@ -91,124 +92,128 @@ msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle" msgid "Provided value does not match required pattern: " msgstr "La valeur fournie ne correspond pas au modèle requis : " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Entrer le mot de passe" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Entrer le nouveau mot de passe" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Confirmez le mot de passe" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Ancien mot de passe" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (encore)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Confirmation de l'adresse email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'adresse e-mail principale fournie n'est pas valide." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Numéro de série en doublon" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Plage de groupe non valide : {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "La plage de groupe {group} dépasse la quantité autorisée ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Séquence de groupe invalide : {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Le nombre de numéros de série uniques ({len(serials)}) doit correspondre à la quantité ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Retirer les balises HTML de cette valeur" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Arabe" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +249,7 @@ msgstr "Espagnol (Mexique)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Estonien" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Se connecter à l'application" msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Erreur lors de l'exécution de la validation du plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Les metadata doivent être un objet python de type \"dict\"" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Métadonnées de l'Extension" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Champs metadata JSON, pour plugins tiers" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Clé de format inconnu spécifiée" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Clé de format requise manquante" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Le champ de référence ne peut pas être vide" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "La référence doit correspondre au modèle requis" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Le numéro de référence est trop grand" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Description" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Chemin d'accès" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notes Markdown (option)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Données du code-barres" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Données de code-barres tierces" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash du code-barre" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Doit être un nombre valide" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -537,7 +542,7 @@ msgstr "Prénom" #: InvenTree/serializers.py:409 msgid "First name of the user" -msgstr "" +msgstr "Prénom de l'utilisateur" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" @@ -545,44 +550,44 @@ msgstr "Nom" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Nom de famille de l'utilisateur" #: InvenTree/serializers.py:415 msgid "Email address of the user" -msgstr "" +msgstr "Adresse e-mail de l'utilisateur" #: InvenTree/serializers.py:439 msgid "Staff" -msgstr "" +msgstr "Staff" #: InvenTree/serializers.py:439 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Cet utilisateur a-t-il les permissions du staff" #: InvenTree/serializers.py:442 msgid "Superuser" -msgstr "" +msgstr "Super-utilisateur" #: InvenTree/serializers.py:442 msgid "Is this user a superuser" -msgstr "" +msgstr "Cet utilisateur est-il un super-utilisateur" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Actif" #: InvenTree/serializers.py:445 msgid "Is this user account active" -msgstr "" +msgstr "Ce compte d'utilisateur est-il actif" #: InvenTree/serializers.py:463 msgid "You do not have permission to change this user role." @@ -662,7 +667,7 @@ msgstr "URL du fichier image distant" msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Échec de la vérification du processus d'arrière-plan" @@ -726,59 +731,59 @@ msgstr "À propos d'InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Consommable" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Facultatif" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Suivi" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allouée" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Disponible" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Ordre de Fabrication" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Ordre de Fabrication" msgid "Build Orders" msgstr "Ordres de Fabrication" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Choix invalide pour la fabrication parente" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Un utilisateur ou un groupe responsable doit être spécifié" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "La pièce de commande de construction ne peut pas être changée" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Référence" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Brève description de la fabrication (optionnel)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Fabrication parente" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "BuildOrder associé a cette fabrication" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Pièce" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Sélectionnez la pièce à construire" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Bon de commande de référence" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Emplacement d'origine" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Emplacement cible" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Quantité a fabriquer" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Nombre de stock items à construire" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Articles terminés" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Nombre d'articles de stock qui ont été terminés" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "État de la construction" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Code de lot" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Date de création" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Date d'achèvement cible" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Date d'achèvement" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "achevé par" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Émis par" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Responsable" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Utilisateur ou groupe responsable de cet ordre de construction" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Lien Externe" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Lien vers une url externe" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Priorité de fabrication" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Priorité de cet ordre de fabrication" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Priorité de cet ordre de fabrication" msgid "Project Code" msgstr "Code du projet" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Code de projet pour cet ordre de construction" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "Échec du déchargement de la tâche pour terminer les allocations de construction" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "La commande de construction {build} a été effectuée" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Une commande de construction a été effectuée" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Pas d'ordre de production défini" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "L'ordre de production a déjà été réalisé" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantité ne peut pas être supérieure à la quantité de sortie" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "La sortie de compilation {serial} n'a pas réussi tous les tests requis" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Création de l'objet" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Création de l'objet" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Quantité" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Quantité requise pour la commande de construction" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Stock de destination de l'article" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nom de l'article" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Sortie d'assemblage" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "L'ordre de production ne correspond pas à l'ordre parent" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "La pièce en sortie ne correspond pas à la pièce de l'ordre de construction" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Cet ordre de production a déjà été produit" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Cet ordre de production n'est pas complètement attribué" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Quantité entière requise pour les pièces à suivre" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numéros de série" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Entrer les numéros de séries pour la fabrication" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Emplacement" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Allouer automatiquement les numéros de série" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "Les numéros de série doivent être fournis pour les pièces traçables" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Les numéros de série suivants existent déjà, ou sont invalides" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Une liste d'ordre de production doit être fourni" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Emplacement du stock pour les sorties épuisées" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Ignorer les allocations" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Abandonner les allocations de stock pour les sorties abandonnées" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Motif de l'élimination des produits de construction(s)" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "État" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Accepter l'allocation incomplète" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Compléter les sorties si le stock n'a pas été entièrement alloué" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "Consommation du stock alloué" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Retirer les sorties incomplètes" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Supprimer toutes les sorties de construction qui n'ont pas été complétées" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Non permis" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Accepter comme consommé par cet ordre de construction" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Désaffecter avant de terminer cette commande de fabrication" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Stock suralloué" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Comment voulez-vous gérer les articles en stock supplémentaires assignés à l'ordre de construction" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Certains articles de stock ont été suralloués" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Accepter les non-alloués" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Le stock requis n'a pas encore été totalement alloué" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Accepter les incomplèts" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "La quantité nécessaire n'a pas encore été complétée" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "L'ordre de production a des sorties incomplètes" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Chaîne d'assemblage" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Sortie d'assemblage" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "La sortie de la construction doit pointer vers la même construction" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Élément de la ligne de construction" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "La sortie de construction doit être spécifiée pour l'allocation des pièces suivies" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La sortie de la construction ne peut pas être spécifiée pour l'allocation des pièces non suivies" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Les articles d'allocation doivent être fournis" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Emplacement de stock où les pièces doivent être fournies (laissez vide pour les prendre à partir de n'importe quel emplacement)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Emplacements exclus" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Exclure les articles de stock de cet emplacement sélectionné" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Stock interchangeable" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Les articles de stock à plusieurs emplacements peuvent être utilisés de manière interchangeable" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Stock de substitution" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Autoriser l'allocation de pièces de remplacement" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Objets Optionnels" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Affecter des éléments de nomenclature facultatifs à l'ordre de fabrication" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Conditionnement" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID de composant" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Numéro de série" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Description pièce" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Numéro de série" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Traçable" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Article du BOM" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Stock alloué" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "En Commande" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "En Production" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Stock disponible" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "En attente" @@ -1647,16 +1677,21 @@ msgstr "En attente" msgid "Production" msgstr "Fabrication" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Annulé" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Terminé" @@ -1684,8 +1719,8 @@ msgstr "Image miniature de l'article" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Actions de code-barres" @@ -1696,7 +1731,7 @@ msgstr "Actions de code-barres" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Afficher le QR Code" @@ -1707,7 +1742,7 @@ msgstr "Afficher le QR Code" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Délier le code-barre" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Lier le code-barre" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Modifier l'assemblage" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Annuler l'assemblage" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Dupliquer la construction" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Annuler l'assemblage" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Supprimer l'assemblage" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Compléter l'assemblage" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Description de la construction" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Aucune sortie de construction n'a été créée pour cet ordre de construction" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "L'ordre de construction est prêt à être marqué comme terminé" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordre de construction ne peut pas être achevé car il reste des outputs en suspens" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Le nombre de constructions requis n'a pas encore été atteint" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Date Cible" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Cette construction était due le %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "En retard" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Sorties de Construction terminées" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Sorties de Construction terminées" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Commandes" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Émis par" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorité" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Supprimer la commande de construction" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Génération du QR Code de commande" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Lier le code-barres pour construire la commande" @@ -1875,8 +1930,8 @@ msgstr "Stock d'origine" msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destination" @@ -1890,21 +1945,21 @@ msgstr "Pièces allouées" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Lot" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Créé le" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Pas de date cible définie" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Terminé" @@ -1987,7 +2042,11 @@ msgstr "Stock Consommé" msgid "Completed Build Outputs" msgstr "Sorties de Construction terminées" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Sorties de Construction terminées" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Pieces jointes" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Notes de construction" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Allocation terminée" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Toutes les lignes ont été entièrement attribuées" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nouvel ordre de construction" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Sorties incomplètes" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Fichier" msgid "Select {name} file to upload" msgstr "Sélectionner le fichier {name} à uploader" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Mise à jour" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Date de la dernière mise à jour" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "L'URL du site est verrouillée par configuration" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Code projet unique" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Description du projet" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Utilisateur ou groupe responsable de ce projet" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Valeur du paramètre" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "La valeur choisie n'est pas une option valide" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "La valeur doit être une valeur booléenne" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "La valeur doit être un nombre entier" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "La chaîne de caractères constituant la clé doit être unique" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Pas de groupe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Redémarrage nécessaire" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Migration en attente" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Nombre de migrations de base de données en attente" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nom de l'instance du serveur" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Chaîne de caractères descriptive pour l'instance serveur" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Utiliser le nom de l'instance" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Utiliser le nom de l’instance dans la barre de titre" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Limiter l'affichage de `about`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Afficher la modale `about` uniquement aux super-utilisateurs" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nom de la société" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Nom de société interne" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL de base" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL de base pour l'instance serveur" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Devise par défaut" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Sélectionnez la devise de base pour les calculs de prix" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Devises supportées" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Liste des codes de devises supportés" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Intervalle de mise à jour des devises" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour désactiver)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "jours" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Plugin de mise à jour de devise" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Plugin de mise à jour des devises à utiliser" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limite du volume de téléchargement" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Taille maximale autorisée pour le téléchargement de l'image distante" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Validation stricte d'URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Spécification du schéma nécessaire lors de la validation des URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Confirmation requise" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Profondeur de l'arborescence" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Intervalle de vérification des mises à jour" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Backup automatique" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Activer le backup automatique de la base de données et des fichiers médias" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervalle de sauvegarde automatique" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Intervalle de suppression des tâches" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Intervalle de suppression du journal d'erreur" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Intervalle de suppression du journal de notification" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Activer le support du scanner de codes-barres dans l'interface web" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Délai d'entrée du code-barres" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Délai de traitement du code-barres" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Prise en charge de la webcam code-barres" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Modifications de la pièce" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Activer le champ de modification de la pièce" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Permettre la suppression de pièces utilisées dans un assemblage" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Copier les données de la pièce" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Copier les données de test par défaut lors de la duplication d'une pièce" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Modèle" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Assemblage" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Composant" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Vendable" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Stock initial" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Données initiales du fournisseur" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Format d'affichage du nom de la pièce" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Icône de catégorie par défaut" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Renforcer les unités des paramètres" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Si des unités sont fournies, les valeurs de paramètre doivent correspondre aux unités spécifiées" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Nombre minimal de décimales" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Nombre minimum de décimales à afficher lors de l'affichage des prix" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Utiliser le prix fournisseur" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inclure les réductions de prix dans le calcul du prix global" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Remplacer l'historique des achats" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Utiliser les prix des articles en stock" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Âge de tarification des articles de stock" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Utiliser les prix variants" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Inclure la tarification variante dans le calcul global des prix" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Variantes actives uniquement" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervalle de regénération des prix" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Substitution du prix interne" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Journal des erreurs" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Activer les rapports de test" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Activer la génération de rapports de test" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Joindre des rapports de test" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Numéro de Série Universellement Unique" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Remplir automatiquement les Numéros de Série" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Remplir automatiquement les numéros de série dans les formulaires" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Supprimer le stock épuisé" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Modèle pour générer des codes par défaut pour les articles en stock" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Délai de péremption du stock" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Construction de stock expirée" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Autoriser la construction avec un stock expiré" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Contrôle de la propriété des stocks" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Icône par défaut de l'emplacement du stock" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Afficher les pièces en stock installées" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Modèle de référence de commande de construction" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Activer les retours de commandes" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Modèle de référence de retour de commande" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Modifier les retours de commandes terminées" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Autoriser la modification des retours après leur enregistrement" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Modèle de référence de bon de commande" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Modèle requis pour générer le champ de référence du bon de commande" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Expédition par défaut du bon de commande" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Activer la création d'expédition par défaut avec les bons de commandes" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Modifier les commandes de vente terminées" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Modèle de référence de commande d'achat" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modèle requis pour générer le champ de référence de bon de commande" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Modifier les bons de commande terminés" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Activer l'inscription SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email requis" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Mot de passe deux fois" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Domaines autorisés" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Grouper sur inscription" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Forcer l'authentification multifacteurs" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Vérifier les plugins au démarrage" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Activer l'intégration d'URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Autoriser les plugins à ajouter des chemins URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Activer l'intégration de navigation" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Activer les plugins à s'intégrer dans la navigation" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Activer l'intégration du planning" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Autoriser les plugins à éxécuter des tâches planifiées" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Activer l'intégration des évènements" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Activer les codes projet" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Fonctionnalité d'inventaire" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Afficher les constructions en retard" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Recherche du fournisseur de pièces" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Longueur maximale des chaînes affichées dans les tableaux" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Utilisateur" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prix" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Jeton" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID message" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Hôte" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Entête" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Corps" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Id" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Lien" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Auteur" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Lu" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "Cette nouvelle a-t-elle été lue ?" msgid "Image" msgstr "Image" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Fichier image" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbole" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Symbole d'unité facultatif" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Définition" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Pièce jointe" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fichier manquant" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Lien externe manquant" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commentaire" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "{verbose_name} annulé" msgid "A order that is assigned to you was canceled" msgstr "Une commande qui vous est assignée a été annulée" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Articles reçus" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Un domaine vide n'est pas autorisé." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nom de domaine invalide : {domain}" @@ -4084,9 +4156,9 @@ msgstr "Adresse e-mail de contact" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Contact" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Devise par défaut utilisée pour cette entreprise" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adresse" @@ -4228,223 +4300,212 @@ msgstr "Notes internes pour la livraison" msgid "Link to address information (external)" msgstr "Lien vers les informations de l'adresse (externe)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Fabricant" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Sélectionner un fabricant" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nom du paramètre" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valeur" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Valeur du paramètre" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Unités" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Unités du paramètre" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Pièce fournisseur" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Fournisseur" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Sélectionner un fournisseur" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Unité de gestion des stocks des fournisseurs" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Sélectionner un fabricant" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Lien de la pièce du fournisseur externe" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "coût de base" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Conditionnement" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Conditionnement de l'article" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Nombre de paquet" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "plusieurs" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Commande multiple" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Quantité disponible auprès du fournisseur" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Disponibilité mise à jour" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Date de dernière mise à jour des données de disponibilité" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Devise par défaut utilisée pour ce fournisseur" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "En Stock" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "Télécharger l'image depuis l'URL" msgid "Delete image" msgstr "Supprimer image" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Client" @@ -4586,7 +4647,7 @@ msgstr "Créer une nouvelle pièce fournisseur" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nouvelle pièce fournisseur" @@ -4599,7 +4660,7 @@ msgstr "Pièces du fabricant" msgid "Create new manufacturer part" msgstr "Créer une nouvelle pièce de fabricant" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nouvelle pièce de fabricant" @@ -4613,7 +4674,7 @@ msgstr "Stock fournisseur" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Nouvelle commande achat" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Fabricants" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Article de la commande" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Supprimer la pièce de fabricant" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Pièces Internes" @@ -4734,7 +4795,7 @@ msgstr "Aucune information sur le fabricant disponible" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Fournisseurs" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paramètres" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "Actions de la pièce du fournisseur" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Commander un composant" @@ -4824,12 +4885,12 @@ msgstr "Supprimer la pièce du fournisseur" msgid "No supplier information available" msgstr "Aucune information de fournisseur disponible" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Stock de pièces du fournisseur" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Créer un nouvel article de stock" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nouvel article de stock" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Éléments en stock" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Données" @@ -5010,7 +5071,7 @@ msgstr "Données" msgid "Errors" msgstr "Erreurs" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Valide" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Inconnu" @@ -5202,21 +5263,21 @@ msgstr "Type de configuration" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Prix Total" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Statut de la commande" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Possède un Tarif" @@ -5224,41 +5285,41 @@ msgstr "Possède un Tarif" msgid "No matching purchase order found" msgstr "Aucun bon de commande correspondant n'a été trouvé" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Commande" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "Commande Complétée" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "Commande En Attente" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Retour de commande" @@ -5286,7 +5347,7 @@ msgstr "Description de la commande (facultatif)" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Lien vers une page externe" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "Adresse de l'entreprise pour cette commande" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Statut de la commande d'achat" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Société de laquelle les articles sont commandés" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Référence du fournisseur" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Code de référence de la commande fournisseur" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "reçu par" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Date d'émission" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Date d'émission de la commande" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Référence client " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "expédié par" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Contexte" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "supprimé" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Reçu" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Où l'Acheteur veut-il stocker cet article ?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "La pièce virtuelle ne peut pas être affectée à une commande" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Expédié" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Date de Livraison" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Envoi" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Ligne" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Article" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Statut du retour de commande" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "La commande ne peut pas être annulée" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "La commande n'est pas ouverte" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Devise du prix d'achat" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Entrez les numéros de série pour les articles de stock entrants" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Code-barres" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Le code-barres est déjà utilisé" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Une quantité entière doit être fournie pour les pièces tracables" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Devise du prix de vente" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Entrez les numéros de série à allouer" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Aucune correspondance trouvée pour les numéros de série suivants" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "Les numéros de série suivants sont déjà alloués" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Perdu" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Retourné" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "En Cours" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Retour" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Réparer" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Remplacer" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Remboursement" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Refuser" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Modifier la commande" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Annuler la commande" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Annuler la commande" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Marquer la commande comme complète" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Finaliser la commande" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Référence de commande" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Description de la commande" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Incomplet" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "Dupliquer la sélection" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Supprimer la ligne" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Référence client" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Coût total" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "Détails de la Commande" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Expéditions en attente" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Actions" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Révision" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Mots-clés" @@ -6298,7 +6369,7 @@ msgstr "Image pièce" msgid "Category ID" msgstr "ID catégorie" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Nom catégorie" @@ -6311,11 +6382,11 @@ msgstr "ID Emplacement par défaut" msgid "Default Supplier ID" msgstr "ID Fournisseur par défaut" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock Minimum" @@ -6323,19 +6394,19 @@ msgstr "Stock Minimum" msgid "Used In" msgstr "Utilisé pour" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Construction" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Coût minimal" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Coût maximal" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Chemin catégorie" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Pièces" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prix Minimum" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Prix Maximum" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "Profondeur" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Catégorie" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "Utilise" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Emplacement par défaut" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Stock total" @@ -6504,784 +6579,785 @@ msgstr "Stock total" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Catégories de composants" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Structurel" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Mots-clés par défaut" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Nom de l'article" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Est-ce que cette pièce est active ?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Création Utilisateur" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "Propriétaire responsable de cette pièce" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Coût minimum de vente" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Activé" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Requis" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validée" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Copier l'image" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Copier les paramètres" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Vous êtes abonné aux notifications pour cette catégorie" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "S'abonner aux notifications de cette catégorie" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Modifier la catégorie" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Supprimer la catégorie" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Pièces (incluant les sous-catégories)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nouvelle catégorie" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Fabricants de composants" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Sélectionner un format de fichier" @@ -7937,7 +8037,7 @@ msgstr "S'abonner aux notifications de cette pièce" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Impression étiquette" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Modifier" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "Aucune action spécifiée" msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "Contributeurs d'InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Notifications InvenTree" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Résultat" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Numéro de série" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Entrez le nombre d'articles en stock à sérialiser" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "En quarantaine" msgid "Legacy stock tracking entry" msgstr "Ancienne entrée de suivi de stock" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Article en stock créé" @@ -10027,7 +10173,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Articles de stock fusionnés" @@ -10047,7 +10193,7 @@ msgstr "Sortie de l'ordre de construction terminée" msgid "Build order output rejected" msgstr "La sortie de l'ordre de construction a été refusée" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Consommé par ordre de construction" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Assemblage" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Accéder au numéro de série suivant" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "Sélectionner la quantité à sérialiser et les numéros de série uniques." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "Chemin d'installation" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Supprimer" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Quantité requise" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Dernier numéro de série" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Ajouter" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Paramètres de Messagerie" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Oui" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index b6e8ccd92d..b04b7dccbe 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:37\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "הכנס סיסמה" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "הכנס סיסמה חדשה" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "אישור סיסמה" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "אשר סיסמה חדשה" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "אימייל (שנית)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "אישור כתובת אימייל" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "חובה לרשום את אותו אימייל בכל פעם." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "שם" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "מקט" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "מקור הבנייה" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "רכיב" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "בחר רכיב לבנייה" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "כמות בניה" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "קישור חיצוני" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "כמות" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "מספרים סידוריים" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "בהמתנה" @@ -1647,16 +1677,21 @@ msgstr "בהמתנה" msgid "Production" msgstr "ייצור" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "מבוטל" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "הושלם" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "משתמש" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "קישור" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "קובץ מצורף" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "קובץ חסר" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "הערה" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "נשלח" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "אבד" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "הוחזר" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "לא פורטה הפעולה" msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 7ddfa059c2..cf30d3eeac 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "तारीख दर्ज करें" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "पास वर्ड दर्ज करें" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "नया पासवर्ड दर्ज करें" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "नए पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "पुराना पासवर्ड" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "कनेक्शन त्रुटि" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "ई-मेल" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index 5b82094db1..f038373ae8 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -56,29 +56,30 @@ msgstr "A hiba részleteit megtalálod az admin panelen" msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Megjegyzések" @@ -91,124 +92,128 @@ msgstr "A(z) '{name}' érték nem a szükséges minta szerinti" msgid "Provided value does not match required pattern: " msgstr "A megadott érték nem felel meg a szükséges mintának: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Jelszó megadása" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Új jelszó megadása" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Jelszó megerősítése" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Új jelszó megerősítése" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Régi jelszó" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (újra)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Email cím megerősítés" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Mindig ugyanazt az email címet kell beírni." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "A megadott elsődleges email cím nem valós." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplikált sorozatszám" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Hibás tartomány: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Csoport tartomány {group} több mint az engedélyezett ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Hibás csoport-sor: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Az egyedi sorozatszámok számának ({len(serials)}) meg kell egyeznie a mennyiséggel ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Arab" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +249,7 @@ msgstr "Spanyol (Mexikói)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Észt" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Bejelentkezés" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Hiba a plugin validálása közben" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "A meta adatnak egy python dict objektumnak kell lennie" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ismeretlen formátum kulcs lett megadva" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Hiányzó formátum kulcs" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Az azonosító mező nem lehet üres" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Az azonosítónak egyeznie kell a mintával" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Azonosító szám túl nagy" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Név" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Leírás (opcionális)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Elérési út" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown megjegyzések (opcionális)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Vonalkód adat" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Harmadik féltől származó vonalkód adat" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Vonalkód hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "Rendszergazda" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktív" @@ -662,7 +667,7 @@ msgstr "A távoli kép URL-je" msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Háttér folyamat ellenőrzés sikertelen" @@ -726,59 +731,59 @@ msgstr "Verzió információk" msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opcionális" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Követett" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Elérhető" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Gyártási utasítás" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Gyártási utasítás" msgid "Build Orders" msgstr "Gyártási utasítások" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Hibás választás a szülő gyártásra" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Meg kell adni felelős felhasználót vagy csoportot" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Gyártási rendelés alkatrész nem változtatható" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Azonosító" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Gyártás rövid leírása (opcionális)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Szülő gyártás" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Alkatrész" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Válassz alkatrészt a gyártáshoz" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Vevői rendelés azonosító" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Forrás hely" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Cél hely" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Válassz helyet ahol a kész tételek tárolva lesznek" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Gyártási mennyiség" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Gyártandó készlet tételek száma" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Kész tételek" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Elkészült készlet tételek száma" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Gyártási állapot" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Gyártás státusz kód" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batch kód" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Létrehozás dátuma" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Befejezés cél dátuma" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Befejezés dátuma" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "elkészítette" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Indította" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Felelős" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Külső link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link külső URL-re" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Priorítás" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Gyártási utasítás priorítása" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Gyártási utasítás priorítása" msgid "Project Code" msgstr "Projektszám" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Projekt kód a gyártáshoz" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "A gyártási foglalások teljesítése háttérfeladat elvégzése nem sikerült" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "A {build} gyártási utasítás elkészült" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Gyártási kimenet már kész" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "A mennyiség nem lehet több mint a gyártási mennyiség" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "A {serial} gyártási kimenet nem felelt meg az összes kötelező teszten" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Gyártás objektum" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,527 +1125,552 @@ msgstr "Gyártás objektum" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Gyártáshoz szükséges mennyiség" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Cél készlet tétel" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Alkatrész neve" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Gyártás kimenet" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Gyártási kimenet nem egyezik a szülő gyártással" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Kimeneti alkatrész nem egyezik a gyártási utasításban lévő alkatrésszel" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Ez a gyártási kimenet már elkészült" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Hely" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "Legyártott készlet helye" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Sorozatszámok automatikus hozzárendelése" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "Egyedi követésre jelölt alkatrészeknél kötelező sorozatszámot megadni" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "A gyártási kimenetek listáját meg kell adni" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Selejtezet gyártási kimenetek helye" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Foglalások törlése" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Selejtezett kimenetek foglalásainak felszabadítása" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Selejtezés oka" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Állapot" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Hiányos foglalás elfogadása" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Kimenetek befejezése akkor is ha a készlet nem\n" "lett teljesen lefoglalva" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "Lefoglalt készlet felhasználása" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "Az összes ehhez a gyártáshoz lefoglalt készlet felhasználása" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Befejezetlen kimenetek törlése" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "A nem befejezett gyártási kimenetek törlése" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Nem engedélyezett" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Gyártásban fel lett használva" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Foglalás felszabadítása a készre jelentés előtt" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Túlfoglalt készlet" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hogyan kezeljük az gyártáshoz rendelt egyéb készletet" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Pár készlet tétel túl lett foglalva" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Kiosztatlanok elfogadása" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "A szükséges készlet nem lett teljesen lefoglalva" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Befejezetlenek elfogadása" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Szükséges gyártási mennyiség nem lett elérve" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Gyártás sor" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Gyártás kimenet" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Gyártás sor tétel" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "A lefoglalandó tételeket meg kell adni" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Hely kizárása" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Készlet tételek kizárása erről a kiválasztott helyről" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Felcserélhető készlet" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Készlet helyettesítés" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Helyettesítő alkatrészek foglalásának engedélyezése" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Opcionális tételek" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Opcionális tételek lefoglalása a gyártáshoz" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "Nem sikerült az automatikus lefoglalás feladatot elindítani" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Gyártói cikkszám" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Hely neve" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Csomagolás" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Alkatrész ID" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "Alkatrész IPN" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Sorozatszám" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "Lefoglalt mennyiség" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Elérhető mennyiség" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Alkatrész leírása" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Sorozatszám" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "Lefoglalt mennyiség" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Elérhető mennyiség" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Követésre kötelezett" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Változatok" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Lefoglalt készlet" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Rendelve" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Gyártásban" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Elérhető készlet" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "Külső raktárkészlet" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Függőben" @@ -1648,16 +1678,21 @@ msgstr "Függőben" msgid "Production" msgstr "Folyamatban" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Törölve" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Kész" @@ -1685,8 +1720,8 @@ msgstr "Alkatrész bélyegkép" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Vonalkód műveletek" @@ -1697,7 +1732,7 @@ msgstr "Vonalkód műveletek" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR kód megjelenítése" @@ -1708,7 +1743,7 @@ msgstr "QR kód megjelenítése" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1721,7 +1756,7 @@ msgstr "Vonalkód leválasztása" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Vonalkód hozzárendelése" @@ -1745,88 +1780,100 @@ msgid "Edit Build" msgstr "Gyártás szerkesztése" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Gyártás törlése" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Gyártás másolása" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Gyártás törlése" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Gyártás törlése" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Gyártás befejezése" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Gyártás leírása" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Ehhez a gyártási utasításhoz nem készült kimenet" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Gyártási utasítás elkészültnek jelölhető" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Befejezetlen gyártási kimenetek vannak" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Szükséges gyártási mennyiség még nincs meg" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Még nincs lefoglalva a szükséges készlet" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Cél dátum" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Ez a gyártás %(target)s-n volt esedékes" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Késésben" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1836,31 +1883,39 @@ msgstr "Befejezett kimenetek" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Vevői rendelés" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Kiállította" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioritás" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Gyártási utasítás törlése" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Gyártási utasítás QR kódja" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Vonalkód gyártáshoz rendelése" @@ -1876,8 +1931,8 @@ msgstr "Készlet forrás" msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Cél" @@ -1891,21 +1946,21 @@ msgstr "Lefoglalt alkatrészek" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Köteg" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Létrehozva" @@ -1914,8 +1969,8 @@ msgid "No target date set" msgstr "Nincs céldátum beállítva" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Kész" @@ -1988,7 +2043,11 @@ msgstr "Felhasznált készlet" msgid "Completed Build Outputs" msgstr "Befejezett gyártási kimenetek" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1998,25 +2057,25 @@ msgstr "Befejezett gyártási kimenetek" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Mellékletek" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Gyártási megjegyzések" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Lefoglalás kész" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Minden sor rendben lefoglalva" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Új gyártási utasítás" @@ -2038,15 +2097,20 @@ msgstr "Sortételek" msgid "Incomplete Outputs" msgstr "Befejezetlen kimenetek" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2104,1654 +2168,1662 @@ msgstr "{name.title()} Fájl" msgid "Select {name} file to upload" msgstr "{name} fájl kiválasztása feltöltéshez" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Frissítve" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Legutóbbi frissítés időpontja" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "A site URL blokkolva van a konfigurációban" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Egyedi projektszám" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projekt leírása" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "A projektért felelős felhasználó vagy csoport" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Beállítás értéke" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "A kiválasztott érték nem egy érvényes lehetőség" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Az érték bináris kell legyen" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Az érték egész szám kell legyen" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Kulcs string egyedi kell legyen" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Nincs csoport" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Újraindítás szükséges" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Függőben levő migrációk" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Függőben levő adatbázis migrációk" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Kiszolgáló példány neve" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "String leíró a kiszolgáló példányhoz" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Példány név használata" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Példány név használata a címsorban" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Verzió infók megjelenítésének tiltása" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Verzió infók megjelenítése csak admin felhasználóknak" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Cég neve" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Belső cégnév" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Kiindulási URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Kiindulási URL a kiszolgáló példányhoz" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Válassz alap pénznemet az ár számításokhoz" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Árfolyam frissítési gyakoriság" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "nap" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Árfolyam frissítő plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Kiválasztott árfolyam frissítő plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Letöltés URL-ről" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Letöltési méret korlát" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximum megengedett letöltési mérete a távoli képeknek" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "Felhasznált User-agent az URL-ről letöltéshez" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Erős URL validáció" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Sablon specifikáció igénylése az URL validálásnál" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Megerősítés igénylése" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Fa mélység" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Frissítés keresés gyakorisága" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatikus biztonsági mentés" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Adatbázis és média fájlok automatikus biztonsági mentése" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automata biztonsági mentés gyakorisága" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Hány naponta készüljön automatikus biztonsági mentés" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Feladat törlési gyakoriság" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Hibanapló törlési gyakoriság" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Értesítés törlési gyakoriság" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Felhasználói értesítések törlése megadott nap eltelte után" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Vonalkód olvasó támogatás engedélyezése a web felületen" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Vonalkód beadási késleltetés" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Webkamerás vonalkód olvasás" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Webkamerás kódolvasás engedélyezése a böngészőből" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Alkatrész változatok" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Alkatrész változat vagy verziószám tulajdonság használata" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrészre is" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Sablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Gyártmány" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Összetevő" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Import segéd megjelenítése néhány alkatrész nézetben" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Kezdeti készlet adatok" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Kezdeti beszállítói adatok" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Alkatrész kategória alapértelmezett ikon" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Csak választható mértékegységek" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek min. száma" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek minimális száma az árak megjelenítésekor" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek max. száma" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek maximális száma az árak megjelenítésekor" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Beszállítói árazás használata" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Beszerzési előzmények felülbírálása" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Készlet tétel ár használata" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Készlet tétel ár kora" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Alkatrészváltozat árak használata" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Csak az aktív változatokat" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Csak az aktív alkatrészváltozatok használata az árazásban" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Árazás újraszámítás gyakoriság" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Árak automatikus frissítése ennyi nap után" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Belső ár felülbírálása" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Jelentési hibák naplózása" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Jelentések generálása közben jelentkező hibák naplózása" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Teszt riportok engedélyezése" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Teszt riportok hozzáadása" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globálisan egyedi sorozatszámok" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Sorozatszámok automatikus kitöltése" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Sorozatszámok automatikus kitöltése a formokon" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Kimerült készlet törlése" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Hely alapértelmezett ikon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Hely alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Beépített készlet megjelenítése" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Beépített készlet tételek megjelenítése a készlet táblákban" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Tételek telepítésekor a darabjegyzék ellenőrzése" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "A beépített tételeknek a szülő elem darabjegyzékében szerepelniük kell" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Felelős tulajdonos szükséges" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Minden rendeléshez felelőst kell rendelni" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "Blokkolás a tesztek sikeres végrehajtásáig" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Nem lehet gyártási tételt befejezni amíg valamennyi kötelező teszt sikeres nem lett" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Visszavétel engedélyezése" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Visszavételek engedélyezése a felületen" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Visszavétel azonosító minta" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Szükséges minta a visszavétel azonosító mező előállításához" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Befejezett visszavétel szerkesztése" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Visszavétel szerkesztésének engedélyezése befejezés után" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Befejezett vevői rendelés szerkesztése" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Befejezett beszerzési rendelés szerkesztése" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Beszerzési rendelések automatikus befejezése" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "A beszerzési rendelés automatikus befejezése ha minden sortétel beérkezett" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "SSO regisztráció engedélyezése" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Engedélyezett domainek" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Plugin frissítések ellenőrzése" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "Frissítések periódikus ellenőrzésének engedélyezése a telepített pluginokra" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Projektszámok használatának engedélyezése a projektek követéséhez" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Leltár funkció" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Riport törlési gyakoriság" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Teszt állomás adatok engedélyezése" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Hibás alkatrészjegyzékek megjelenítése" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "Utoljára használt nyomtató gépek" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Felhasználó" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Ár" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Titok" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Fejléc" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Törzs" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Azonosító" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Link" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Szerző" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Elolvasva" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3761,94 +3833,94 @@ msgstr "Elolvasva?" msgid "Image" msgstr "Kép" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Képfájl" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Melléklet" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Hiányzó fájl" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Hiányzó külső link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Megjegyzés" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Fájl mérete" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "Fájlméret bájtban" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3870,7 +3942,7 @@ msgstr "{verbose_name} megszakítva" msgid "A order that is assigned to you was canceled" msgstr "Egy hozzád rendelt megrendelés megszakítva" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Készlet érkezett" @@ -3958,27 +4030,27 @@ msgstr "Modell típusa" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Üres domain nem engedélyezett." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Érvénytelen domain név: {domain}" @@ -4085,9 +4157,9 @@ msgstr "Kapcsolattartó email címe" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Névjegy" @@ -4132,9 +4204,9 @@ msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Cím" @@ -4229,223 +4301,212 @@ msgstr "Szállítási megjegyzések belső használatra" msgid "Link to address information (external)" msgstr "Link a címinformációkhoz (külső)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Kiindulási alkatrész" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Válassz alkatrészt" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Gyártó" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Gyártó kiválasztása" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "MPN (Gyártói cikkszám)" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL link a gyártói alkatrészhez" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Gyártói alkatrész leírása" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Paraméter neve" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Érték" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Mértékegység" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Paraméter mértékegység" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Beszállítói alkatrész" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "A csomagolási egységnek kompatibilisnek kell lennie az alkatrész mértékegységgel" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Beszállító" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Beszállító kiválasztása" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Beszállítói cikkszám" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "Ez a szállítói termék aktív?" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Gyártói alkatrész kiválasztása" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL link a beszállítói alkatrészhez" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "alap költség" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Csomagolás" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "többszörös" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Többszörös rendelés" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Beszállítónál elérhető mennyiség" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Elérhetőség frissítve" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Utolsó elérhetőségi adat frissítés" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4457,7 +4518,7 @@ msgstr "Beszállító által használt alapértelmezett pénznem" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4468,8 +4529,8 @@ msgstr "Készleten" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktív" @@ -4527,17 +4588,17 @@ msgstr "Kép letöltése URL-ről" msgid "Delete image" msgstr "Kép törlése" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Vevő" @@ -4587,7 +4648,7 @@ msgstr "Új beszállítói alkatrész létrehozása" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Új beszállítói alkatrész" @@ -4600,7 +4661,7 @@ msgstr "Gyártói alkatrészek" msgid "Create new manufacturer part" msgstr "Új gyártói alkatrész létrehozása" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Új gyártói alkatrész" @@ -4614,7 +4675,7 @@ msgstr "Beszállítói készlet" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4637,7 +4698,7 @@ msgstr "Új beszerzési rendelés" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4709,7 +4770,7 @@ msgstr "Gyártók" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Alkatrész rendelés" @@ -4724,8 +4785,8 @@ msgid "Delete manufacturer part" msgstr "Gyártói alkatrész törlése" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Belső alkatrész" @@ -4735,7 +4796,7 @@ msgstr "Nincs elérhető gyártói információ" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4744,12 +4805,12 @@ msgstr "Beszállítók" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Paraméterek" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4760,7 +4821,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Paraméter hozzáadása" @@ -4792,7 +4853,7 @@ msgstr "Beszállítói alkatrész műveletek" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Alkatrész rendelése" @@ -4825,12 +4886,12 @@ msgstr "Beszállítói alkatrész törlése" msgid "No supplier information available" msgstr "Nincs elérhető beszállítói információ" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "SKU (leltári azonosító)" @@ -4839,13 +4900,13 @@ msgid "Supplier Part Stock" msgstr "Beszállítói készlet" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Új készlet tétel létrehozása" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Új készlet tétel" @@ -4880,16 +4941,16 @@ msgid "Update Part Availability" msgstr "Alkatrész elérhetőség frissítése" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Készlet tételek" @@ -5003,7 +5064,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Adat" @@ -5011,7 +5072,7 @@ msgstr "Adat" msgid "Errors" msgstr "Hibák" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Érvényes" @@ -5111,7 +5172,7 @@ msgstr "Címkénkénti nyomtatandó mennyiség" msgid "Connected" msgstr "Csatlakoztatba" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Ismeretlen" @@ -5203,21 +5264,21 @@ msgstr "Konfiguráció típusa" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Teljes ár" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Rendelés állapota" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Van árazás" @@ -5225,41 +5286,41 @@ msgstr "Van árazás" msgid "No matching purchase order found" msgstr "Nincs egyező beszerzési rendelés" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Rendelés" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "A rendelés teljesítve" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "A rendelés függőben" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Visszavétel" @@ -5287,7 +5348,7 @@ msgstr "Rendelés leírása (opcionális)" msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Link külső weboldalra" @@ -5311,365 +5372,369 @@ msgstr "Kapcsolattartó ehhez a rendeléshez" msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Beszállítói rendelés azonosító kód" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "érkeztette" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Kiállítás dátuma" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Kiállítás dátuma" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "szállította" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Kontextus" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Egységár" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "törölve" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Beérkezett" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Kiszállítva" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Sor" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Tétel" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "Mikor lett visszavéve a tétel" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5677,208 +5742,208 @@ msgstr "" msgid "Completed Lines" msgstr "Kész sorok" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "A rendelést nem lehet törölni" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Rendelés lezárása teljesítetlen sortételek esetén is" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "A rendelésben teljesítetlen sortételek vannak" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "A rendelés nem nyitott" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "Automata árazás" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "Beszerzési ár automatikus számítása a beszállítói alkatrész adatai alapján" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Beszérzési ár pénzneme" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "Elemek összevonása" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "Azonos forrás és cél dátumú Alkatrész tételeinek összevonása egy tételre" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Beszállítói alkatrészt meg kell adni" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Beszerzési rendelést meg kell adni" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Sortétel" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Írd be a sorozatszámokat a beérkezett tételekhez" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Vonalkód" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Beolvasott vonalkód" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Ez a vonalkód már használva van" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Sortételt meg kell adni" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "A cél helyet kötelező megadni" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Megadott vonalkódoknak egyedieknek kel lenniük" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Eladási ár pénzneme" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Nincsenek szállítmány részletek megadva" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "Mennyiség pozitív kell legyen" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Írd be a sorozatszámokat a kiosztáshoz" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "Szállítmány kiszállítva" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Nincs találat a következő sorozatszámokra" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "A következő sorozatszámok már ki lettek osztva" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "Visszavétel sortétel" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "Sortétel nem egyezik a visszavétellel" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "A sortétel már beérkezett" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "Csak folyamatban lévő megrendelés tételeit lehet bevételezni" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "Sortétel pénzneme" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Elveszett" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Visszaküldve" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Folyamatban" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Visszavétel" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Javítás" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Csere" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Visszatérítés" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Elutasított" @@ -5923,87 +5988,93 @@ msgid "Edit order" msgstr "Rendelés szerkesztése" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Rendelés törlése" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Rendelés másolása" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Rendelés törlése" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "Rendelés kiküldése" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Rendelés teljesítettnek jelölése" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Rendelés befejezése" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "Beszállítói alkatrész bélyegkép" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Rendelés azonosítója" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Rendelés leírása" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Nincs elérhető beszállítói információ" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Kész sortételek" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Hiányos" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Kiküldve" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Teljes költség" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "A teljes költség nem számolható" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "Beszerzési rendelés QR kódja" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "Vonalkód hozzáadása a beszerzési rendeléshez" @@ -6057,12 +6128,12 @@ msgstr "Kijelöltek másolása" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Sor törlése" @@ -6163,31 +6234,31 @@ msgstr "Visszavételi riport nyomtatása" msgid "Print packing list" msgstr "Csomagolási lista nyomtatása" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Vevői azonosító" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Teljes költség" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "Visszavétel QR kódja" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "Vonalkód visszavételhez rendelése" @@ -6199,36 +6270,36 @@ msgstr "Visszavétel részletei" msgid "Print sales order report" msgstr "Vevői rendelés nyomtatása" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Tételek kiszállítása" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Vevői rendelés befejezése, minden kiszállítva" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Kész szállítmányok" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "Vevő rendelés QR kódja" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "Vonalkód hozzáadása a vevői rendeléshez" @@ -6242,8 +6313,8 @@ msgid "Pending Shipments" msgstr "Függő szállítmányok" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Műveletek" @@ -6273,21 +6344,21 @@ msgstr "A {part} egységára {price}-ra módosítva" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN (Belső Cikkszám)" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Változat" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Kulcsszavak" @@ -6299,7 +6370,7 @@ msgstr "Alkatrész ábra" msgid "Category ID" msgstr "Kategória ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategória neve" @@ -6312,11 +6383,11 @@ msgstr "Alapértelmezett készlethely ID" msgid "Default Supplier ID" msgstr "Alapértelmezett beszállító ID" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimális készlet" @@ -6324,19 +6395,19 @@ msgstr "Minimális készlet" msgid "Used In" msgstr "Felhasználva ebben" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Gyártásban" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maximum költség" @@ -6348,19 +6419,19 @@ msgstr "Szülő ID" msgid "Parent Name" msgstr "Szülő neve" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Kategória elérési út" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Alkatrészek" @@ -6377,126 +6448,130 @@ msgstr "Alkatrészjegyzék tétel ID" msgid "Parent IPN" msgstr "Szülő IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minimum ár" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Maximum ár" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "Csillagozott" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "Csillagozottra szűrés" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "Mélység" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "Kategória mélységre szűrés" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "Felső szint" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "Lépcsőzetes" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "Szűrt eredmények tartalmazzák az alkategóriákat" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "Szülő" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "Szülő kategóriára szűrés" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "Fa kihagyása" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "Az adott kategória alkategóriáinak kihagyása" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "Van találat" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Beérkező beszerzési rendelés" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Kimenő vevői rendelés" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Gyártással előállított készlet" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "A gyártási utasításhoz szükséges készlet" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategória" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "Használ" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Alapértelmezett hely" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Teljes készlet" @@ -6505,784 +6580,785 @@ msgstr "Teljes készlet" msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Szerkezeti" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "A szerkezeti alkatrész kategóriákhoz nem lehet direktben alkatrészeket hozzáadni, csak az alkategóriáikhoz." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Alapértelmezett kulcsszavak" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (opcionális)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Hibás választás a szülő alkatrészre" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Az '{self}' alkatrész nem használható a '{parent}' alkatrészjegyzékében (mert rekurzív lenne)" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Az '{parent}' alkatrész szerepel a '{self}' alkatrészjegyzékében (rekurzív)" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "Az IPN belső cikkszámnak illeszkednie kell a {pattern} regex mintára" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "Alkatrész leírása (opcionális)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Alkatrész mértékegysége" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "Alkatrész felelőse" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "Minimum költség felülbírálása" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "Maximum költség felülbírálása" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Dátum" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Riport" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Hibás sablon név - legalább egy alfanumerikus karakter kötelező" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "Már létezik ilyen azonosítójú Teszt sablon ehhez az alkatrészhez" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "Teszt azonosító" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "Egyszerűsített Teszt azonosító" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Engedélyezve" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "Teszt engedélyezve?" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Kötelező" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Szint" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" @@ -7290,338 +7366,358 @@ msgstr "Már létezik duplikált alkatrész kapcsolat" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "Felsőbb szintű alkatrész kategória" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alkategóriák" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "Eredmények" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "Eszerint a sablon szerint rögzített eredmények száma" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "Ennyi alkatrész használja ezt a sablont" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Nincs kiválasztva alkatrész" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Válassz kategóriát" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Eredeti alkatrész" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Válassz eredeti alkatrészt a másoláshoz" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kép másolása" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Paraméterek másolása" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Paraméterek másolása az eredeti alkatrészről" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Megjegyzések másolása" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Megjegyzések másolása az eredeti alkatrészről" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Kezdeti készlet mennyiség" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Kezdeti készlet hely" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Add meg a kezdeti készlet helyét" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Gyártói cikkszám" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "A kiválasztott cég nem érvényes beszállító" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "A kiválasztott cég nem érvényes gyártó" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Van már ilyen gyártói alkatrész" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Van már ilyen beszállítói alkatrész" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "Nem lefoglalt készlet" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "Variánsok Raktárkészlet" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Alkatrész másolása" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Kezdeti adatok másolása egy másik alkatrészről" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Kezdeti készlet" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Kezdeti készlet mennyiség létrehozása" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Beszállító információ" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Kezdeti beszállító adatok hozzáadása" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kategória paraméterek másolása" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Meglévő kép" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "A meglévő alkatrész képfájl neve" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "A képfájl nem létezik" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Külső készlet nélkül" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Külső helyeken lévő készlet nélkül" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Riport létrehozása" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Riport fájl létrehozása a számított leltár adatokkal" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Alaktrészek frissítése" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Leltár funkció nincs engedélyezve" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Számított minimum ár felülbírálása" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Minimum ár pénzneme" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Számított maximum ár felülbírálása" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Maximum ár pénzneme" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Frissítés" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Alkatrész árak frissítése" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Gyártható" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Teljes mennyiség" @@ -7667,65 +7763,65 @@ msgstr "Ezt az alkatrészjegyzéket utoljára %(checker)s ellenőrizte %(check_d msgid "This BOM has not been validated." msgstr "Ez az alkatrészjegyzék még nincs jóváhagyva." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Alkatrész kategória leltározása" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Értesítések beállítva erre a kategóriára" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Értesítések kérése erre a kategóriára" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategória műveletek" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Kategória szerkesztése" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Kategória törlése" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Kategória törlése" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Legfelső szintű alkatrész kategória" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Alkatrészek száma (alkategóriákkal együtt)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Alkatrész létrehozása" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Új alkatrész" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Alkatrész paraméterek" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Alkatrész kategória létrehozása" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Új kategória" @@ -7773,7 +7869,7 @@ msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Leltár" @@ -7785,101 +7881,105 @@ msgstr "Alkatrész teszt sablonok" msgid "Add Test Template" msgstr "Teszt sablon hozzáadása" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Vevői rendeléshez foglalások" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Alkatrész megjegyzések" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Alkatrész változatok" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Új változat létrehozása" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Új változat" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Paraméter hozzáadása" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Kapcsolódó alkatrészek" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Kapcsolódó hozzáadása" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Alkatrészjegyzék" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Exportálási műveletek" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Alkatrészjegyzék exportálása" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Alkatrészjegyzék riport nyomtatása" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Alkatrészjegyzék műveletek" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Alkatrészjegyzék feltöltése" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Alkatrészjegyzék jóváhagyása" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Alkatrészjegyzék tétel hozzáadása" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Gyártmányok" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Alkatrész gyártások" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Gyártáshoz foglalások" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Alkatrész beszállítók" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Alkatrész gyártók" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Kapcsolódó alkatrész" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Kapcsolódó alkatrész hozzáadása" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "Teszt eredmény sablon hozzáadása" @@ -7914,13 +8014,13 @@ msgstr "Alkatrész import sablon letöltése" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Formátum" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Fájlfomátum kiválasztása" @@ -7938,7 +8038,7 @@ msgstr "Értesítések kérése erre az alkatrészre" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Címke nyomtatása" @@ -7948,7 +8048,7 @@ msgstr "Árinformációk megjelenítése" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Készlet műveletek" @@ -7960,7 +8060,7 @@ msgstr "Készlet számolása" msgid "Transfer part stock" msgstr "Készlet áthelyezése" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Készlet műveletek" @@ -8028,7 +8128,7 @@ msgid "Minimum stock level" msgstr "Minimális készlet" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8117,13 +8217,13 @@ msgid "Variants" msgstr "Változatok" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Készlet" @@ -8159,7 +8259,7 @@ msgstr "Alkatrész árazás felülbírálása" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8169,7 +8269,7 @@ msgstr "Szerkesztés" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Utoljára módosítva" @@ -8241,9 +8341,9 @@ msgid "Update Pricing" msgstr "Árazás Frissítése" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Nincs készlet" @@ -8333,100 +8433,108 @@ msgstr "Nincs megadva művelet" msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Nem található megfelelő alkatrész adat" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Nem található megfelelő beszállítói alkatrész" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Ez a termék már bevételezve" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Beszállítói vonalkód nem található" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Több egyező sortétel is található" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Nincs egyező sortétel" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Készlet tétel nem egyezik a sortétellel" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Készlet tétel lefoglalva egy vevői rendeléshez" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Nincs elég információ" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "A vonalkódhoz több beszállítói alkatrész is tartozik" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "A '{order}' rendeléshez több beszerzési rendelés is tartozik" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "A '{order}' rendeléshez nem tartozik beszerzési rendelés" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "A beszerzési rendelés nem egyezik a beszállítóval" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Nem található függőben levő tétel a beszállítói alkatrészhez" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "A tétel bevételezéséhez további információ szükséges" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Beszerzési rendelés tétele bevételezve" @@ -8434,51 +8542,59 @@ msgstr "Beszerzési rendelés tétele bevételezve" msgid "Scanned barcode data" msgstr "Beolvasott vonalkód" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Beszerzési rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Bevételezési tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Beszerzési rendelés nincs elküdve" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Bevételezés erre a készlet helyre" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Struktúrális hely nem választható" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Tételekhez rendelendő Vevői Rendelés" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Vevői rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés sortétel" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Tételekhez rendelendő vevői rendelés szállítmány" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Szállítmány kiszállítva" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Lefoglalandó mennyiség" @@ -8498,15 +8614,15 @@ msgstr "A címke HTML nyomtatása sikertelen" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InventTree vonalkódok" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Alapvető vonalkód támogatást ad" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8517,6 +8633,30 @@ msgstr "Alapvető vonalkód támogatást ad" msgid "InvenTree contributors" msgstr "InvenTree fejlesztők" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree értesítések" @@ -8763,7 +8903,7 @@ msgid "Is the plugin active" msgstr "Aktív-e a plugin" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Beépítve" @@ -8931,7 +9071,7 @@ msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9059,7 +9199,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Haladás" @@ -9158,10 +9298,10 @@ msgstr "Beszállító törölve lett" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Egységár" @@ -9174,8 +9314,10 @@ msgstr "Egyéb tételek" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Összesen" @@ -9192,11 +9334,11 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Teszt" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Eredmény" @@ -9217,29 +9359,29 @@ msgid "No result" msgstr "Nincs eredmény" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sorozatszám" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "A fájl nem létezik" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "A képfile nem található" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image elem csak alkatrész példánynál használható" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image elem csak cég példánynál használható" @@ -9247,8 +9389,8 @@ msgstr "company_image elem csak cég példánynál használható" msgid "Location ID" msgstr "Hely ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Hely elérési út" @@ -9280,7 +9422,7 @@ msgstr "Beszállító neve" msgid "Customer ID" msgstr "Vevő ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Beépítve ebbe" @@ -9305,9 +9447,9 @@ msgstr "Felülvizsgálat szükséges" msgid "Delete on Deplete" msgstr "Törlés ha kimerül" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Lejárati dátum" @@ -9323,7 +9465,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "Szűrt eredmények tartalmazzák az alhelyeket" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "Szülő hely" @@ -9347,7 +9489,7 @@ msgstr "Lejárat előtt" msgid "Expiry date after" msgstr "Lejárat után" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9373,316 +9515,316 @@ msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Készlethely típus" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Készlethely típusok" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beállítva (válaszható)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Külső" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Ez egy külső készlethely" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Helyszín típusa" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Tárolóhely típus" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "A beszállítói alkatrész típusa ('{self.supplier_part.part}') mindenképpen {self.part} kellene, hogy legyen" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Felhasználva ebben" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Felhasználva ebben a gyártásban" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" @@ -9754,193 +9896,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Csomagolási mennyiség használata: a megadott mennyiség ennyi csomag" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Lejárt" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Gyermek tételek" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "Készlet tétel beszerzési ára, per darab vagy csomag" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "Cél készlet hely" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Opcionális megjegyzés mező" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Válaszd ki a beépítésre szánt készlet tételt" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "Beépítendő mennyiség" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "Adja meg a beépítendő mennyiséget" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "A beépítendő mennyiség legalább 1 legyen" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Készlet tétel nem elérhető" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "A beépítendő mennyiség nem haladhatja meg az elérhető mennyiséget" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Készlet tétel hozzárendelt beszállítói alkatrésszel nem konvertálható" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alhelyek" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "Felsőbb szintű készlet hely" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Különböző állapotú készletek összevonásának engedélyezése" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "Nincs változás" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "Készlet tétel státusz kódja" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" @@ -9972,7 +10118,7 @@ msgstr "Karanténban" msgid "Legacy stock tracking entry" msgstr "Örökölt készlet követési bejegyzés" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Készlet tétel létrehozva" @@ -10028,7 +10174,7 @@ msgstr "Szülő tételből szétválasztva" msgid "Split child item" msgstr "Szétválasztott gyermek tétel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Összevont készlet tétel" @@ -10048,7 +10194,7 @@ msgstr "Gyártási utasítás kimenete kész" msgid "Build order output rejected" msgstr "Gyártási utasítás kimenete elutasítva" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Gyártásra felhasználva" @@ -10109,7 +10255,7 @@ msgstr "Készlet tétel megjegyzések" msgid "Installed Stock Items" msgstr "Beépített készlet tételek" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Készlet tétel beépítése" @@ -10117,7 +10263,7 @@ msgstr "Készlet tétel beépítése" msgid "Delete all test results for this stock item" msgstr "Készlet tétel összes teszt eredményének törlése" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Teszt eredmény hozzáadása" @@ -10130,8 +10276,8 @@ msgid "Scan to Location" msgstr "Áthelyezés kódolvasással" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Nyomtatási műveletek" @@ -10140,17 +10286,17 @@ msgid "Stock adjustment actions" msgstr "Készlet módosítási műveletek" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Leltározás" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Készlet növelése" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Készlet csökkentése" @@ -10159,12 +10305,12 @@ msgid "Serialize stock" msgstr "Sorozatszámok előállítása" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Készlet áthelyezése" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Vevőhöz rendelése" @@ -10205,7 +10351,7 @@ msgid "Delete stock item" msgstr "Készlet tétel törlése" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Gyártás" @@ -10218,7 +10364,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Úgytűnik nem vagy ennek a tételnek a tulajdonosa. Ezt így nem tudod módosítani." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Csak olvasható" @@ -10263,7 +10409,7 @@ msgid "Navigate to next serial number" msgstr "Menj a következő sorozatszámhoz" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Nincs beállítva hely" @@ -10290,7 +10436,7 @@ msgid "No stocktake performed" msgstr "Még nem volt leltározva" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "készlet tétel" @@ -10322,7 +10468,7 @@ msgstr "Ez a művelet nem vonható vissza könnyen" msgid "Convert Stock Item" msgstr "Készlet tétel konvertálása" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Visszavétel készletre" @@ -10334,84 +10480,84 @@ msgstr "Sorszámozott készletek létrehozása ebből a készlet tételből." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Válassz mennyiséget és egyedi sorozatszámokat a sorozatszámozáshoz." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Készlethely leltározása" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Készlet hely keresése" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Készlet bevételezése erre a helyre" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Készlet vonalkódok beolvasása" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Készlet tároló bevételezése erre a helyre" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Tároló vonalkód beolvasása" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Készlethely riport nyomtatása" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Hely műveletek" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Hely szerkesztése" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Hely törlése" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Legfelső szintű készlet hely" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Hely tulajdonosa" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Úgytűnik nem vagy ennek a készlethelynek a tulajdonosa. Ezt így nem tudod módosítani." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Új készlet hely létrehozása" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Új hely" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "készlet hely" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "Készlet tároló bevételezve erre a helyre" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "Készlet hely QR kódja" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "Vonalkód hozzárendelése a készlet helyhez" @@ -10787,7 +10933,7 @@ msgstr "Telepítési útvonal" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Beépített" @@ -10797,7 +10943,7 @@ msgstr "Ez egy beépített plugin amit nem lehet letiltani" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Minta" @@ -10900,9 +11046,9 @@ msgid "Rate" msgstr "Árfolyam" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Törlés" @@ -10923,7 +11069,7 @@ msgid "No project codes found" msgstr "Nem találhatók projektszámok" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "csoport" @@ -10942,12 +11088,12 @@ msgid "No category parameter templates found" msgstr "Nincs kategória paraméter sablon" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Sablon szerkesztése" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Sablon törlése" @@ -10955,40 +11101,40 @@ msgstr "Sablon törlése" msgid "Edit Category Parameter Template" msgstr "Kategória paraméter sablon szerkesztése" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "Kategória paraméter sablon törlése" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "Kategória paraméter sablon létrehozása" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "Alkatrész paraméter sablon létrehozása" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Nem találhatók készlethely típusok" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Készlethely mennyiség" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "Készlethely típus szerkesztése" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "Készlethely típus törlése" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "Készlethely típus törlése" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Új készlethely típus" @@ -11325,7 +11471,7 @@ msgid "Submit Bug Report" msgstr "Hibabejelentés küldése" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "vágólapra másolás" @@ -11580,7 +11726,7 @@ msgid "The following parts are low on required stock" msgstr "A következő alkatrészek szükséges készlete alacsony" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Szükséges mennyiség" @@ -11594,7 +11740,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk a következő linkre az alkatrész megjelenítéséhez" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimum mennyiség" @@ -11759,7 +11905,7 @@ msgstr "Ez törli a vonalkód hozzárendelést" msgid "Unlink" msgstr "Leválasztás" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Készlet tétel törlése" @@ -11949,7 +12095,7 @@ msgstr "Alkatrészjegyzék betöltése az al-gyártmányhoz" msgid "Substitutes Available" msgstr "Vannak helyettesítők" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "Készletváltozatok engedélyezve" @@ -11969,30 +12115,30 @@ msgstr "Alkatrészjegyzék árazása nem teljes" msgid "No pricing available" msgstr "Nincsenek árak" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "Külső raktárkészlet" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "Nincs szabad" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "Változatokkal és helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "Változatokkal együtt" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "Helyettesítőkkel együtt" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Fogyóeszköz tétel" @@ -12024,7 +12170,7 @@ msgstr "Alkatrészjegyzék megtekintése" msgid "No BOM items found" msgstr "Nem találhatók alkatrészjegyzék tételek" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Szükséges alkatrész" @@ -12072,13 +12218,13 @@ msgstr "Gyártási utasítás befejezetlen" msgid "Complete Build Order" msgstr "Gyártási utasítás befejezése" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "Következő szabad sorozatszám" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "Legutolsó sorozatszám" @@ -12130,13 +12276,13 @@ msgstr "Biztosan szeretnéd a már lefoglalt készlet tételeket felszabadítani msgid "Deallocate Stock Items" msgstr "Készlet tételek felszabadítása" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Gyártási kimenetek kiválasztása" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Legalább egy gyártási kimenetet ki kell választani" @@ -12144,288 +12290,288 @@ msgstr "Legalább egy gyártási kimenetet ki kell választani" msgid "Selected build outputs will be marked as complete" msgstr "A kiválasztott gyártási kimenetek késznek lesznek jelölve" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Kimenet" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Gyártási kimenetek befejezése" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "A kiválasztott gyártási kimenetek selejtnek lesznek jelölve" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Selejtezett kimenetek elutasítottnak jelölve" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "A lefoglalt készlet már nem lesz elérhető" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "A befejezési státusza a gyártásnak nem fog változni" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Gyártási kimenetek selejtezése" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "A kiválasztott gyártási kimenetek törölve lesznek" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "A gyártási kimenet adatai véglegesen törölve lesznek" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "A lefoglalt készlet tételek újra készletre kerülnek" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Gyártási kimenetek törlése" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "Nincs gyártási utasításhoz történő foglalás" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "Hely nincs megadva" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Kimenetek befejezése" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Kimenetek selejtezése" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Kimenetek törlése" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "gyártás kimenet" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "gyártás kimenetek" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Gyártási kimenet műveletei" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Nem található aktív gyártási kimenet" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Lefoglalt sorok" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Szükséges tesztek" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Válassz alkatrészeket" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "Minden alkatrész lefoglalva" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "Minden kiválasztott alkatrész teljesen lefoglalva" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Készlet foglalása a gyártási utasításhoz" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "Nincs egyező készlethely" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Nincs egyező készlet" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "Automatikus készlet foglalás" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "A készlet automatikusan lefoglalásra kerül ehhez a gyártási utasításhoz, a következő feltételek szerint" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Készlet tételek foglalása" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "Nincs a lekérdezéssel egyező gyártási utasítás" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Kiválaszt" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "Gyártás késésben van" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "Nincs felhasználói információ" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "Készlet foglalások szerkesztése" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "Készlet foglalások törlése" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Foglalás szerkesztése" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "Foglalás törlése" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "gyártás sor" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "gyártás sorok" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "Nincsenek gyártási sorok" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Követésre kötelezett alkatrész" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Mennyiségi egység" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "Van elegendő" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Fogyóeszköz tétel" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Követett tétel" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "Egyedileg nyilvántartott tételek lefoglalása egyedi gyártási kimenetekhez" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Gyártási készlet" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Készlet rendelés" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Lefoglalt készlet" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "Készlet foglalások törlése" @@ -12572,7 +12718,7 @@ msgid "Delete Parameters" msgstr "Paraméterek törlése" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Alkatrész rendelés" @@ -12589,34 +12735,34 @@ msgid "No manufacturer parts found" msgstr "Nincs gyártói alkatrész" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Sablon alkatrész" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Gyártmány alkatrész" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "Nem található paraméter" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Paraméter törlése" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Paraméter szerkesztése" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Paraméter törlése" @@ -12670,45 +12816,45 @@ msgstr "Ársáv szerkesztése" msgid "Delete price break" msgstr "Ársáv törlése" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "igaz" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "hamis" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Szűrő kiválasztása" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Címkék nyomtatása" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Riportok nyomtatása" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "Táblázat letöltése" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "Táblázat frissítése" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Új szűrő hozzáadása" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Összes szűrő törlése" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Szűrő létrehozása" @@ -12750,39 +12896,39 @@ msgstr "Form hibák vannak" msgid "No results found" msgstr "Nincs találat" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Keresés" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Bevitel törlése" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Fájl oszlop" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Mező név" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Oszlopok kiválasztása" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "IGEN" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEM" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Igaz" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "Hamis" @@ -12867,7 +13013,7 @@ msgstr "Nem találhatók hírek" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "Azonosító" @@ -12895,395 +13041,404 @@ msgstr "Nincsenek olvasatlan értesítések" msgid "Notifications will load here" msgstr "Az értesítések itt fognak megjelenni" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "Egyéb tétel hozzáadása" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "Rendelés exportálása" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "Sor másolása" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "Sor szerkesztése" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "Sor törlése" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "Nem találhatók sortételek" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "Sor másolása" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "Sor szerkesztése" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "Sor törlése" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Alkatrész tulajdonságok" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Alkatrész létrehozási opciók" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "Alkatrész másolási opciók" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Alkatrész kategória hozzáadása" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "Ikon (opcionális) - Az összes ikon felfedezése itt" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "Alkatrész kategória létrehozása" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "Új kategória létrehozása ez után" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "Alkatrész kategória létrehozva" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "Alkatrész kategória szerkesztése" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "Biztos hogy törölni szeretnéd ezt az alkatrész kategóriát?" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "Áthelyezés fentebbi kategóriába" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "Alkatrész kategória törlése" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "A kategóriában lévő alkatrészek kezelése" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "Alkategóriák kezelése" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Alkatrész létrehozása" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "Új alkatrész létrehozása ez után" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "Alkatrész sikeresen létrehozva" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Alkatrész szerkesztése" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Alkatrész módosítva" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "Alkatrész változat létrehozása" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Aktív alkatrész" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "Alkatrész nem törölhető mivel még aktív" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "Ezen alkatrész törlése nem vonható vissza" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Ennek az alkatrésznek a teljes készlete törölve lesz" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "Ez az alkatrész minden alkatrészjegyzékből törölve lesz" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "Ehhez az alkatrészhez rendelt minden beszállítói és gyártói információ törölve lesz" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Alkatrész törlése" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "Értesítések beállítva erre a tételre" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "Értesítések kérése erre a tételre" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "Értesítések letiltva erre a tételre" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "Az alkatrészjegyzék jóváhagyása minden sortételt jóvá fog hagyni" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "Alkatrészjegyzék jóváhagyása" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "Alkatrészjegyzék jóvá lett hagyva" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "Alkatrészjegyzék másolása" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Alacsony készlet" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "Nincs elérhető készlet" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Igény" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Me" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Virtuális alkatrész" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Értesítésre beállított alkatrész" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Értékesíthető alkatrész" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "Új leltár riport ütemezése." -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "Amint elkészül, az új leltár riport letölthető lesz." -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "Leltár riport létrehozása" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "Leltár riport beütemezve" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "Nincs elérhető leltár előzmény" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "Leltár bejegyzés szerkesztése" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "Leltár bejegyzés törlése" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "Nincs több változat" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "Nincs alkatrész paraméter sablon" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "Alkatrész paraméter sablon módosítása" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "Az összes erre a sablonra hivatkozó paraméter is törlésre kerül" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "Alkatrész paraméter sablon törlése" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "Nem található beszerzési rendelés" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "Ez a sortétel késésben van" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "Sortétel bevételezése" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "Alkatrész kapcsolatok törlése" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Nincs alkatrész" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "Kategória beállítása a kiválasztott alkatrészekhez" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "Alkatrész kategória beállítása" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Kategória beállítása" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "alkatrész" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "alkatrészek" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Nincs kategória" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Megjelenítés listaként" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Megjelenítés rácsnézetként" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Nem találhatóak alkategóriák" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Megjelenítés fában" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Alkategóriák betöltése" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Értesítésre beállított kategória" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "Nincs a lekérdezéssel egyező teszt sablon" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "találat" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "Ez a teszt a szülő alkatrészhez lett felvéve" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "Teszt eredmény sablon szerkesztése" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "Teszt eredmény sablon törlése" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "Nincs megadva dátum" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "A megadott dátum a múltban van" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Spekulatív" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "Az alkatrészhez nem áll rendelkezésre ütemezési információ" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "Hiba az alkatrész ütemezési információinak betöltésekor" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "Ütemezett készlet mennyiség" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Maximum mennyiség" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "Minimális készlet" @@ -13497,7 +13652,7 @@ msgid "Quantity to receive" msgstr "Érkező mennyiség" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13545,73 +13700,73 @@ msgstr "Rendelési kód" msgid "Quantity to Receive" msgstr "Érkező mennyiség" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "Bevételezés megerősítése" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "Beszerzési rendelés tételeinek bevételezése" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "Tétel vonalkód beolvasása" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Beérkezett tétel vonalkódjának leolvasása (egyik meglévő készlet tétellel sem egyezhet)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "Érvénytelen vonalkód adat" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Rendelés késésben" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "Az összes kijelölt sortétel törlésre kerül" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "Töröljük a kiválasztott sortételeket?" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Sortétel törlése" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "Sortétel másolása" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Sortétel szerkesztése" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Sortétel törlése" @@ -13666,16 +13821,16 @@ msgstr "Nem található visszavétel" msgid "Invalid Customer" msgstr "Érvénytelen vevő" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "Visszavétel tételeinek bevételezése" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "Nincs egyező sortétel" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "Tétel bevételezve" @@ -13834,7 +13989,7 @@ msgstr "Készlet foglalások törlése" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "Vevőnek kiszállítva" @@ -13892,517 +14047,521 @@ msgstr "Eredmények összezárása" msgid "Remove results" msgstr "Eredmények eltávolítása" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Készlet tétel sorszámozása" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "Készlet sorozatszámozás megerősítése" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "Alapértelmezett ikon minden készlethelyre melyhez nincs ikon rendelve (választható) - Válogass az ikonok közül" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "Készlethely típus hozzáadása" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "Készlet hely szerkesztése" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "Új készlet hely" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "Új készlethely létrehozása ez után" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "Készlet hely létrehozva" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "Biztosan törölni szeretnéd ezt a készlet helyet?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "Szülő készlet helyre mozgatás" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "Készlethely törlése" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Műveletek az ezen a helyen lévő tételekhez" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "Műveletek az al-helyekhez" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "Ezt az alkatrészt nem lehet sorozatszámozni" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Készlet tétel lemásolva" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Készlet tétel másolása" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Biztosan törölni szeretnéd ezt a készlet tételt?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Készlet tétel törlése" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Készlet tétel szerkesztése" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Új tétel létrehozása ez után" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "Készlet tétel létrehozva" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "Több készlet tétel létre lett hozva" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "Sorozatszám keresése" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Sorozatszám megadása" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "Adj meg egy sorozatszámot" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "Nincs egyező sorozatszám" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "Több egyező eredmény is van" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "Készlet hozzárendelés jóváhagyása" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "Készlet vevőhöz rendelése" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "Figyelem: az összevonási művelet nem vonható vissza" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Némi információ elveszik a készlet összevonás során" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "A készlettörténet törölve lesz az összevont tételeknél" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Készlet összevonás megerősítése" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Készlet tételek összevonása" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Készlet áthelyezése" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Áthelyezés" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Leltározás" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Leltár" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Készlet csökkentése" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Kivesz" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Hozzáad" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "Készlet mennyiség megadása" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Készlet tételek kiválasztása" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Válassz legalább egy rendelkezésre álló készlet tételt" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Készlet módosítás jóváhagyása" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "SIKER" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "SIKERTELEN" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "NINCS EREDMÉNY" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Teszt sikeres" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Teszt eredmény hozzáadása" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "Nincs teszt eredmény" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Teszt dátuma" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "Teszt elkezdődött" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "Teszt befejezve" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "Teszt eredmény szerkesztése" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "Teszt eredmény törlése" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "Gyártásban" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "Beépítve készlet tételbe" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "Vevő rendeléshez hozzárendelve" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Nincs hely megadva" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Készlet állapot módosítása" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Készlet összevonása" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Készlet törlése" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "készlet tételek" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "Beolvasás helyre" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Készlet műveletek" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "Beépített tételek betöltése" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Készlet tétel gyártás alatt" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Készlet tétel teljes egészében lefoglalva" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Készlet tétel részben lefoglalva" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Készlet tétel beépítve egy másikba" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Készlet tétel fel lett használva egy gyártásban" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Készlet tétel lejárt" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Készlet tétel hamarosan lejár" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Készlet tétel elutasítva" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Készlet tétel elveszett" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Készlet tétel megsemmisült" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Kimerült" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "Beszállítói alkatrész nincs megadva" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Készletérték" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Nincs a lekérdezésnek megfelelő készlet tétel" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "készlethelyek" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "Alhelyek betöltése" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Részletek" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Nincs változás" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "Alkatrész információ nem áll rendelkezésre" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "A hely már nem létezik" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "A gyártási utasítás már nem létezik" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "Beszerzési megrendelés már nem létezik" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "Vevői megrendelés már nem létezik" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "Visszavétel már nem létezik" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "Vevő már nem létezik" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "A készlet tétel már nem létezik" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Hozzáadva" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Eltávolítva" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "Nincsenek beépített tételek" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Készlet tétel kiszedése" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Válaszd ki a kiszedni való készlet tételt" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Másik tétel beépítése ebbe a készlet tételbe" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "A készlet tétel jelenleg elérhető készleten" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "A készlet tétel még nem épült be egy másik tételbe" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "A készlet tétel követett vagy sorozatszámmal vagy batch kóddal" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "Válaszd ki a beépítendő alkatrészt" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Válassz ki egy vagy több készlet tételt" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Kiválasztott készlet tételek" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Készlet állapot módosítása" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Van projektszáma" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Rendelés állapota" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Kintlévő" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Hozzám rendelt" @@ -14437,12 +14596,12 @@ msgstr "Van készlethely típusa" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Alkategóriákkal együtt" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Értesítés beállítva" @@ -14484,7 +14643,7 @@ msgid "Batch code" msgstr "Batch kód" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Aktív alkatrész" @@ -14585,56 +14744,64 @@ msgstr "Teszten megfelelt" msgid "Include Installed Items" msgstr "Beépített tételekkel együtt" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Gyártási állapot" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Alkategóriákkal együtt" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "Aktív alkatrészek megjelenítése" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Elérhető" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Van mértékegysége" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "Az alkatrésznek van megadva mértékegysége" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Van IPN-je" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "Van belső cikkszáma" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "Készleten" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Beszerezhető" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "Volt leltár" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Vannak lehetőségei" @@ -14907,6 +15074,14 @@ msgstr "Email beállítások" msgid "Email settings not configured" msgstr "Email beállítások hiányoznak" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Igen" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index 33751e0509..e7c62555d0 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -56,29 +56,30 @@ msgstr "Detail terkait galat dapat dilihat di panel admin" msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Catatan" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Masukkan sandi" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Masukkan kata sandi baru" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Konfirmasikan kata sandi" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Konfirmasi sandi baru" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Kata sandi lama" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ulang)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Konfirmasi alamat email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Masukkan email yang sama." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Alamat surel utama yang diberikan tidak valid." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Domain surel yang diberikan tidak perbolehkan." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Hapus tag-tag HTML dari nilai ini" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "Surel" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nama" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Keterangan (opsional)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Direktori" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Data Barcode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Data barcode pihak ketiga" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "URL file gambar external" msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "Tentang InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Order Produksi" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Order Produksi" msgid "Build Orders" msgstr "Order Produksi" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Pilihan produksi induk tidak valid" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referensi" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produksi Induk" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Produksi induk dari produksi ini" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Produksi induk dari produksi ini" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Bagian" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Pilih bagian untuk diproduksi" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Referensi Order Penjualan" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Order penjualan yang teralokasikan ke pesanan ini" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokasi Sumber" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Pilih dari lokasi mana stok akan diambil untuk produksi ini (kosongkan untuk mengambil stok dari mana pun)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Lokasi Tujuan" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Pilih lokasi di mana item selesai akan disimpan" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Jumlah Produksi" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Jumlah item stok yang akan dibuat" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Item selesai" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Jumlah stok item yang telah diselesaikan" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Status pembuatan" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Kode status pembuatan" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kode Kelompok" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Tanggal Pembuatan" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Target tanggal selesai" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Tanggal selesai" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "diselesaikan oleh" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Diserahkan oleh" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Pengguna yang menyerahkan order ini" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Penanggung Jawab" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Tautan eksternal" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Tidak ada hasil produksi yang ditentukan" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Hasil produksi sudah selesai" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Jumlah" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Jumlah harus 1 untuk stok dengan nomor seri" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Stok Item" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Pasang ke" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Tujuan stok item" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Hasil Produksi" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Hasil produksi tidak sesuai dengan produksi induk" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Hasil bagian tidak sesuai dengan bagian dalam order produksi" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Hasil produksi ini sudah diselesaikan" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Hasil produksi tidak dialokasikan sepenuhnya" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Masukkan jumlah hasil pesanan" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam daftar barang" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Nomor Seri" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Masukkan nomor seri untuk hasil pesanan" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokasi" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Alokasikan nomor seri secara otomatis" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Daftar hasil pesanan harus disediakan" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Terima Alokasi Tidak Lengkap" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Terima Tidak Teralokasikan" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Terima bahwa stok item tidak teralokasikan sepenuhnya ke pesanan ini" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Terima Tidak Selesai" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Terima bahwa jumlah hasil produksi yang diperlukan belum selesai" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Jumlah produksi yang diperlukan masih belum cukup" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Order memiliki hasil produksi yang belum dilengkapi" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Hasil produksi" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Hasil pesanan harus mengarah ke pesanan yang sama" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Jumlah tersedia ({q}) terlampaui" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlacak" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Hasil produksi tidak dapat ditentukan untuk alokasi barang yang tidak terlacak" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Item yang dialokasikan harus disediakan" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lokasi stok, dari mana bahan/bagian akan diambilkan (kosongkan untuk mengambil dari lokasi mana pun)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Lokasi tidak termasuk" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Jangan ambil stok item dari lokasi yang dipilih" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Stok bergantian" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Item stok di beberapa lokasi dapat digunakan secara bergantian" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Stok pengganti" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Izinkan alokasi bagian pengganti" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Item tagihan material" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "Produksi" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Dibatalkan" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Selesai" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Tampilkan kode QR" @@ -1707,7 +1742,7 @@ msgstr "Tampilkan kode QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Ubah Produksi" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Batalkan Produksi" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Batalkan Produksi" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Hapus Produksi" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Selesaikan Produksi" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Deskripsi Produksi" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Tidak ada hasil pesanan yang dibuat oleh pesanan ini" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Surel diperlukan" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Pengguna" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Tautan" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Lampiran" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "File tidak ditemukan" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Dikirim" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Hilang" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Dikembalikan" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "Tidak ada tindakan yang ditentukan" msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Item stok dibuat" @@ -10027,7 +10173,7 @@ msgstr "Dipisah dari item induk" msgid "Split child item" msgstr "Pisah item dari barang induk" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Stok item digabungkan" @@ -10047,7 +10193,7 @@ msgstr "Order output produksi selesai" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Terpakai oleh order produksi" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produksi" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Pengaturan Surel" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index a0feab49b5..4ff97534a3 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -56,29 +56,30 @@ msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministra msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Note" @@ -91,118 +92,122 @@ msgstr "Il valore '{name}' non è nel formato del pattern" msgid "Provided value does not match required pattern: " msgstr "Il valore fornito non corrisponde al modello richiesto: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Inserire la password" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Inserire una nuova password" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Conferma la password" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Conferma la nuova password" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vecchia password" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ancora)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Conferma indirizzo email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "L'indirizzo email principale fornito non è valido." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "La registrazione è disabilitata." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Seriale Duplicato" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Intervallo di gruppo non valido: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "L'intervallo di gruppo {group} supera la quantità consentita ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Sequenza di gruppo non valida: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Il numero di numeri di serie univoci ({len(serials)}) deve corrispondere alla quantità ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Rimuovi i tag HTML da questo valore" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Accedi all'app" msgid "Email" msgstr "Email" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Errore nell'eseguire la convalida del plugin" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "I metadati devono essere un oggetto python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metadati Plugin" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Campo di metadati JSON, da utilizzare con plugin esterni" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Schema formattato impropriamente" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Formato chiave sconosciuta" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Formato chiave mancante" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Il campo di riferimento non può essere vuoto" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Il campo deve corrispondere al modello richiesto" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Numero di riferimento troppo grande" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nome" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Percorso" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Note di Markdown (opzionale)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dati del Codice a Barre" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dati Codice a Barre applicazioni di terze parti" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Codice a Barre" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Deve essere un numero valido" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "Superuser" msgid "Is this user a superuser" msgstr "Questo utente è un superutente" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Attivo" @@ -662,7 +667,7 @@ msgstr "URL del file immagine remota" msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Controllo in background non riuscito" @@ -726,59 +731,59 @@ msgstr "Informazioni Su InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opzionale" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Monitorato" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Allocato" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Disponibile" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Ordine di Produzione" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Ordine di Produzione" msgid "Build Orders" msgstr "Ordini di Produzione" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "Assembly BOM non è stato convalidato" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "L'ordine di generazione non può essere creato per una parte inattiva" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "L'ordine di compilazione non può essere creato per una parte sbloccata" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Scelta non valida per la produzione genitore" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "L'utente o il gruppo responsabile deve essere specificato" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "L'ordine di costruzione della parte non può essere cambiata" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Riferimento" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Breve descrizione della build (facoltativo)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Produzione Genitore" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Ordine di produzione a cui questa produzione viene assegnata" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Articolo" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Selezionare parte da produrre" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Numero di riferimento ordine di vendita" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Ordine di vendita a cui questa produzione viene assegnata" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Posizione Di Origine" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Posizione Della Destinazione" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Quantità Produzione" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Numero di articoli da costruire" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Articoli completati" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Numero di articoli di magazzino che sono stati completati" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Stato Produzione" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Codice stato di produzione" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Codice Lotto" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Codice del lotto per questa produzione" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Data di creazione" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Data completamento obiettivo" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Data di completamento" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "Completato da" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Rilasciato da" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Utente che ha emesso questo ordine di costruzione" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Responsabile" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Utente o gruppo responsabile di questo ordine di produzione" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Collegamento esterno" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link a URL esterno" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Priorità di produzione" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Priorità di questo ordine di produzione" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Priorità di questo ordine di produzione" msgid "Project Code" msgstr "Codice del progetto" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Codice del progetto per questo ordine di produzione" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "L'ordine di produzione {build} è stato completato" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "L'ordine di produzione è stato completato" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Nessun output di produzione specificato" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "La produzione è stata completata" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantità non può essere maggiore della quantità in uscita" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Crea oggetto" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Crea oggetto" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Quantità" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Quantità richiesta per l'ordine di costruzione" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Quantità di magazzino da assegnare per la produzione" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Installa in" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nome Articolo" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Genera Output" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "L'output generato non corrisponde alla produzione principale" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "L'output non corrisponde alle parti dell'ordine di produzione" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Questa produzione è stata già completata" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Questo output non è stato completamente assegnato" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Quantità totale richiesta per articoli rintracciabili" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene articoli rintracciabili" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Codice Seriale" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Posizione" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Numeri di Serie Assegnazione automatica" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Deve essere fornito un elenco dei risultati di produzione" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Stato" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Accetta Assegnazione Incompleta" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Completa l'output se le scorte non sono state interamente assegnate" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Rimuovi Output Incompleti" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Elimina gli output di produzione che non sono stati completati" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Non permesso" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Accetta come consumato da questo ordine di produzione" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Non assegnare prima di aver completato questo ordine di produzione" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Giacenza in eccesso assegnata" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Come si desidera gestire gli elementi extra giacenza assegnati all'ordine di produzione" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Alcuni articoli di magazzino sono stati assegnati in eccedenza" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Accetta Non Assegnato" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accetta che gli elementi in giacenza non sono stati completamente assegnati a questo ordine di produzione" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "La giacenza richiesta non è stata completamente assegnata" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Accetta Incompleta" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accetta che il numero richiesto di output di produzione non sia stato completato" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "La quantità di produzione richiesta non è stata completata" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "L'ordine di produzione ha output incompleti" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Linea di produzione" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Genera Output" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "L'output di produzione deve puntare alla stessa produzione" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Articolo linea di produzione" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "L'output di produzione deve essere specificato per l'ubicazione delle parti tracciate" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "L'output di produzione non deve essere specificato per l'ubicazione delle parti non tracciate" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Posizione dello stock in cui le parti devono prelevate (lasciare vuoto per prelevare da qualsiasi luogo)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Escludi Ubicazione" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Escludi gli elementi stock da questa ubicazione selezionata" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Scorte Intercambiabili" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Gli elementi in magazzino in più sedi possono essere utilizzati in modo intercambiabile" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Sostituisci Giacenze" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Consenti l'allocazione delle parti sostitutive" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Articoli Opzionali" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Assegna gli elementi opzionali della distinta base all'ordine di produzione" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Codice articolo produttore" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Nome Ubicazione" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Confezionamento" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Codice Articolo" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "IPN Articolo" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Numero Seriale" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Quantità Disponibile" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Descrizione Articolo" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Numero Seriale" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Quantità Disponibile" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Tracciabile" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Ordinato" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Disponibilità in magazzino" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "In attesa" @@ -1647,16 +1677,21 @@ msgstr "In attesa" msgid "Production" msgstr "Produzione" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Annullato" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Completo" @@ -1684,8 +1719,8 @@ msgstr "Anteprima parte" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Azioni Barcode" @@ -1696,7 +1731,7 @@ msgstr "Azioni Barcode" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Mostra QR Code" @@ -1707,7 +1742,7 @@ msgstr "Mostra QR Code" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Scollega Codice a Barre" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Collega Codice a Barre" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Modica Produzione" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Annulla Produzione" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Duplica Produzione" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Annulla Produzione" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Elimina Produzione" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Completa Produzione" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Descrizione Produzione" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Nessun output di produzione è stato creato per questo ordine di produzione" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "L'ordine di produzione è pronto per essere contrassegnato come completato" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "L'ordine di produzione non può essere completato poiché gli output rimangono in sospeso" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "La quantità di produzione richiesta non è stata completata" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzione" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Data scadenza" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Questa produzione era in scadenza il %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "In ritardo" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Outputs Completati" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Outputs Completati" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Ordini di Vendita" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Inviato da" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorità" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Elimina ordine di produzione" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Genera Codice QR Ordine di produzione" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Collega il codice a barre all'ordine di produzione" @@ -1875,8 +1930,8 @@ msgstr "Risorse di magazzino" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destinazione" @@ -1890,21 +1945,21 @@ msgstr "Articoli Assegnati" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Lotto" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Creato" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Nessuna data di destinazione impostata" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Completato" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "Produzioni Completate" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Produzioni Completate" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Allegati" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Genera Note" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nuovo Ordine di Produzione" @@ -2037,15 +2096,20 @@ msgstr "Elementi Riga" msgid "Incomplete Outputs" msgstr "Output Incompleti" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "Seleziona il file {name} da caricare" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Aggiornato" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Orario dell'ultimo aggiornamento" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Codice unico del progetto" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Descrizione del progetto" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Valore impostazioni" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Il valore specificato non è un opzione valida" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Il valore deve essere un valore booleano" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Il valore deve essere un intero" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "La stringa chiave deve essere univoca" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Nessun gruppo" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Riavvio richiesto" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nome Istanza Del Server" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Descrittore stringa per l'istanza del server" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Utilizza nome istanza" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Usa il nome dell'istanza nella barra del titolo" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Limita visualizzazione `Informazioni`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Mostra la modalità `Informazioni` solo ai superusers" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nome azienda" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Nome interno dell'azienda" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL di base per l'istanza del server" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Valuta predefinita" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "giorni" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Scarica dall'URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Consenti il download di immagini e file remoti da URL esterno" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limite Dimensione Download" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Dimensione massima consentita per il download dell'immagine remota" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent utilizzato per scaricare dall'URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Richiesta conferma" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Richiede una conferma esplicita dell'utente per una determinata azione." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Profondità livelli" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Aggiorna intervallo di controllo" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Backup automatico" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Abilita il backup automatico di database e file multimediali" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Intervallo Di Backup Automatico" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Codice a barre inserito scaduto" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Tempo di ritardo di elaborazione codice a barre" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Codice a Barre Supporto Webcam" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Consenti la scansione del codice a barre tramite webcam nel browser" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "Abilita il campo revisione per l'articolo" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "Abilita il campo revisione per l'articolo" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Copia i dati dei parametri di default quando si duplica un articolo" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Copia I Dati dell'Articolo Test" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Copia i dati di prova di default quando si duplica un articolo" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Modello" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Assemblaggio" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Componente" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Vendibile" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Dati iniziali dello stock" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dati iniziali del fornitore" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Icona predefinita Categoria Articolo" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Usa Prezzi Fornitore" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Ignora la Cronologia Acquisti" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Utilizzare i prezzi degli articoli in stock" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Età dei prezzi degli articoli in stock" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Utilizza Variazione di Prezzo" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Solo Varianti Attive" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Sovrascrivi Prezzo Interno" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Abilita stampa etichette" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Abilita la stampa di etichette dall'interfaccia web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etichetta Immagine DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Abilita Rapporto di Prova" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Allega Rapporto di Prova" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Seriali Unici Globali" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Auto Riempimento Numeri Seriali" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Auto riempimento numeri nel modulo" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Elimina scorte esaurite" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Modello Codice a Barre" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Tempo di Scorta del Magazzino" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Crea giacenza scaduta" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Permetti produzione con stock scaduto" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Icona Predefinita Ubicazione di Magazzino" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Produzione" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Vendita" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Spedizione Predefinita Ordine Di Vendita" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Modifica Ordini Di Vendita Completati" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Modello di Riferimento Ordine D'Acquisto" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Modifica Ordini Di Acquisto Completati" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Abilita registrazione SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Posta due volte" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Password due volte" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Domini consentiti" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppo iscrizione" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Applica MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Gli utenti devono utilizzare la sicurezza a due fattori." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Controlla i plugin all'avvio" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Abilita l'integrazione URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Attiva plugin per aggiungere percorsi URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Attiva integrazione navigazione" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Abilita i plugin per l'integrazione nella navigazione" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Abilita l'app integrata" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Abilita plugin per aggiungere applicazioni" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Abilita integrazione pianificazione" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Abilita i plugin per eseguire le attività pianificate" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Abilita eventi integrati" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Funzionalità Dell'Inventario" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Mostra produzioni in ritardo" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Utente" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prezzo" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Segreto" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Intestazione" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Contenuto" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Collegamento" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autore" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Letto" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "Queste notizie sull'elemento sono state lette?" msgid "Image" msgstr "Immagine" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "File immagine" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Allegato" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "File mancante" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Link esterno mancante" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commento" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Elemento ricevuto" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Un dominio vuoto non è consentito." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome dominio non valido: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Indirizzo email" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Contatto" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Valuta predefinita utilizzata per questa azienda" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Indirizzo" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Codice articolo produttore" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Articolo di base" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Seleziona articolo" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Produttore" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Seleziona Produttore" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "Codice articolo produttore (MPN)" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Descrizione articolo costruttore" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nome parametro" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Valore" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Unità" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Unità parametri" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Articolo Fornitore" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Fornitore" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Seleziona fornitore" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Unità di giacenza magazzino fornitore" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Selezionare un produttore" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Descrizione articolo fornitore" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Nota" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "costo base" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Confezionamento" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Quantità Confezione" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "multiplo" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Ordine multiplo" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Quantità disponibile dal fornitore" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Disponibilità Aggiornata" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Data dell’ultimo aggiornamento dei dati sulla disponibilità" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Valuta predefinita utilizzata per questo fornitore" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "In magazzino" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inattivo" @@ -4526,17 +4587,17 @@ msgstr "Scarica immagine dall'URL" msgid "Delete image" msgstr "Elimina immagine" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Cliente" @@ -4586,7 +4647,7 @@ msgstr "Crea nuovo fornitore" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nuovo fornitore articolo" @@ -4599,7 +4660,7 @@ msgstr "Articoli Produttore" msgid "Create new manufacturer part" msgstr "Crea nuovo articolo produttore" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nuovo Produttore Articoli" @@ -4613,7 +4674,7 @@ msgstr "Giacenza Fornitore" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Nuovo Ordine di Acquisto" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Produttori" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Articoli ordinati" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Cancella articolo produttore" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Articolo interno" @@ -4734,7 +4795,7 @@ msgstr "Nessuna informazione sul produttore disponibile" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Fornitori" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametri" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "Azioni Articolo Fornitore" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Ordine Articolo" @@ -4824,12 +4885,12 @@ msgstr "Elimina Articolo Fornitore" msgid "No supplier information available" msgstr "Nessuna informazione sul fornitore disponibile" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Fornitore articolo in giacenza" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Crea nuova allocazione magazzino" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nuovo Elemento in giacenza" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Dati" @@ -5010,7 +5071,7 @@ msgstr "Dati" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Valido" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Sconosciuto" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Prezzo Totale" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Stato dell'ordine" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "Nessun ordine di acquisto corrispondente trovato" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Ordine" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Restituisci ordine" @@ -5286,7 +5347,7 @@ msgstr "Descrizione dell'ordine (opzionale)" msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" @@ -5310,365 +5371,369 @@ msgstr "Punto di contatto per questo ordine" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Riferimento fornitore" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Codice di riferimento ordine fornitore" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "ricevuto da" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Data di emissione" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Data di emissione ordine" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Data ordine completato" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "spedito da" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Contesto" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "eliminato" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Ricevuto" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Spedito" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Linea" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Elemento" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Risultati" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "L'ordine non può essere cancellato" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Consenti di chiudere l'ordine con elementi di riga incompleti" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "L'ordine ha elementi di riga incompleti" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "L'ordine non è aperto" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Valuta prezzo d'acquisto" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "L'articolo del fornitore deve essere specificato" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "L'ordine di acquisto deve essere specificato" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Il fornitore deve essere abbinato all'ordine d'acquisto" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "L'ordine di acquisto deve essere abbinato al fornitore" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Elemento Riga" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "L'elemento di riga non corrisponde all'ordine di acquisto" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Inserisci i numeri di serie per gli articoli stock in arrivo" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Codice a Barre" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Codice a barre scansionato" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Il codice a barre è già in uso" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Deve essere fornita una quantità intera per gli articoli rintracciabili" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Gli elementi di linea devono essere forniti" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "La destinazione deve essere specificata" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "I valori dei codici a barre forniti devono essere univoci" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Valuta prezzo di vendita" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Nessun dettaglio di spedizione fornito" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "L'elemento di riga non è associato a questo ordine" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "La quantità deve essere positiva" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Inserisci i numeri di serie da assegnare" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "La spedizione è già stata spedita" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "La spedizione non è associata con questo ordine" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "I seguenti numeri di serie sono già assegnati" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Perso" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Reso" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "In corso" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Indietro" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Riparare" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Sostituire" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Rimborso" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Rifiuta" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Modifica ordine" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Annulla l'ordine" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Duplica Ordine" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Annulla l'ordine" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Contrassegna ordine come completato" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Completa l'ordine" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Riferimento ordine" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Descrizione Dell'Ordine" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Nessuna informazione sul fornitore disponibile" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Elementi della linea completati" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Incompleto" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Emesso" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Costo totale" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Il costo totale non può essere calcolato" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "Duplica selezionati" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Elimina riga" @@ -6162,31 +6233,31 @@ msgstr "Stampa rapporto ordine di reso" msgid "Print packing list" msgstr "Stampa lista d'imballaggio" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Riferimento Cliente" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Costo Totale" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "Dettagli dell'ordine" msgid "Print sales order report" msgstr "Stampa il rapporto dell'ordine delle vendite" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Spedisci oggetti" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Completa Ordine Di Vendita" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Questo Ordine di Vendita non è stato assegnato completamente" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Spedizioni Completate" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Spedizione in sospeso" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Azioni" @@ -6272,21 +6343,21 @@ msgstr "Aggiornato {part} prezzo unitario a {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revisione" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Parole Chiave" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "Id Categoria" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Nome Categoria" @@ -6311,11 +6382,11 @@ msgstr "Posizione Predefinita ID" msgid "Default Supplier ID" msgstr "ID Fornitore Predefinito" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante Di" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Scorta Minima" @@ -6323,19 +6394,19 @@ msgstr "Scorta Minima" msgid "Used In" msgstr "Utilizzato In" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "In Costruzione" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Costo Massimo" @@ -6347,19 +6418,19 @@ msgstr "ID principale" msgid "Parent Name" msgstr "Nome Principale" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Percorso Categoria" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Articoli" @@ -6376,126 +6447,130 @@ msgstr "ID Elemento Distinta Base" msgid "Parent IPN" msgstr "IPN Principale" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prezzo Minimo" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Prezzo Massimo" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Ordine D'Acquisto In Arrivo" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Ordine di Vendita in Uscita" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Giacenza prodotta dall'Ordine di Costruzione" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Giacenza richiesta per l'Ordine di Produzione" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "Convalida l'intera Fattura dei Materiali" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Questa opzione deve essere selezionata" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Categoria" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Posizione Predefinita" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Giacenze Totali" @@ -6504,784 +6579,785 @@ msgstr "Giacenze Totali" msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Categorie Articolo" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Posizione predefinita per gli articoli di questa categoria" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strutturale" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Le parti non possono essere assegnate direttamente a una categoria strutturale, ma possono essere assegnate a categorie subordinate." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Keywords predefinite" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Icona" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Icona (facoltativa)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Non puoi rendere principale questa categoria di articoli perché alcuni articoli sono già assegnati!" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Esiste già un elemento stock con questo numero seriale" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "È Template" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Unita di misura per questo articolo" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Questo articolo può essere costruito da altri articoli?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Questo articolo può essere utilizzato per costruire altri articoli?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Questo articolo ha il tracciamento per gli elementi unici?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Somma di controllo Distinta Base" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "Somma di controllo immagazzinata Distinta Base" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "Distinta Base controllata da" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "Data di verifica Distinta Base" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Creazione Utente" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Data" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Abilitato" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Richiesto" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Livello" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Convalidato" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" @@ -7289,338 +7365,358 @@ msgstr "La relazione duplicata esiste già" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Sottocategorie" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Valuta di acquisto di questo articolo in stock" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Articolo Originale" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Seleziona l'articolo originale da duplicare" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Copia immagine" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Copia Distinta Base" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Copia fattura dei materiali dall'articolo originale" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Copia parametri" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Copia i dati dei parametri dall'articolo originale" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Quantità iniziale" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Ubicazione Iniziale Magazzino" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Seleziona il fornitore (o lascia vuoto per saltare)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleziona il produttore (o lascia vuoto per saltare)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Codice articolo Produttore" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "L'azienda selezionata non è un fornitore valido" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "L'azienda selezionata non è un produttore valido" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplica articolo" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Copia i dati iniziali da un altro Articolo" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Stock iniziale" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Crea Articolo con quantità di scorta iniziale" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Informazioni Fornitore" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Copia Parametri Categoria" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Copia i parametri dai modelli della categoria articolo selezionata" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Genera Report" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Genera file di report contenente dati di inventario calcolati" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Aggiorna Articoli" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "La funzione Inventario non è abilitata" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Aggiorna" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Aggiorna i prezzi per questo articolo" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Puoi produrre" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Cancella Distinta Base esistente" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Rimuovi elementi distinta base esistenti prima del caricamento" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Nessuna colonna articolo specificata" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Trovati più articoli corrispondenti" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Nessun articolo corrispondente trovato" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "L'articolo non è indicato come componente" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Quantità non fornita" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Quantità non valida" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Almeno un elemento della distinta base è richiesto" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Quantità Totale" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Esegui inventario per questa categoria articolo" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Sei iscritto alle notifiche di questa categoria" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Sottoscrivi notifiche per questa categoria" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Azioni Categoria" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Modifica categoria" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Modifica Categoria" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Elimina la categoria" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Cancella categoria" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Categoria articolo di livello superiore" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Articoli (incluse le sottocategorie)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Crea nuovo articolo" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Nuovo articolo" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Parametri articolo" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Crea nuova categoria articoli" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nuova categoria" @@ -7772,7 +7868,7 @@ msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Inventario" @@ -7784,101 +7880,105 @@ msgstr "Modelli Articoli Test" msgid "Add Test Template" msgstr "Aggiungi Modelli Test" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Assegnazione Ordine Di Vendita" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Note Articolo" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Varianti articolo" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Crea nuova variante" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Nuova variante" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Aggiungi un nuovo parametro" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Articoli correlati" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Aggiungi Correlato" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Distinta base" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Esporta azioni" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Esporta Distinta Base" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Stampa il report Distinta Base" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Azioni Distinta Base" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Carica Distinta Base" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Valida Distinta Base" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Aggiungi elemento Distinta Base" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Assembla" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Articoli prodotti" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Costruisci le ubicazioni degli ordini" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Fornitori articoli" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Componenti Produttori" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "Scarica il Modello Articolo Importato" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Formato" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Seleziona il formato del file" @@ -7937,7 +8037,7 @@ msgstr "Sottoscrivi le notifiche per questo articolo" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Stampa Etichetta" @@ -7947,7 +8047,7 @@ msgstr "Mostra informazioni sui prezzi" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Azioni magazzino" @@ -7959,7 +8059,7 @@ msgstr "Conta articoli magazzino" msgid "Transfer part stock" msgstr "Trasferisci giacenza" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Azioni articolo" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Livello minimo di giacenza" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Varianti" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Magazzino" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Modifica" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Ultimo aggiornamento" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Nessuna giacenza" @@ -8332,100 +8432,108 @@ msgstr "Nessuna azione specificata" msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Scorte insufficienti disponibili" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree Codice a Barre" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Fornisce supporto nativo per codici a barre" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "Fornisce supporto nativo per codici a barre" msgid "InvenTree contributors" msgstr "Contributi d'InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Notifiche" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "Il plugin è attivo" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installato" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "Il fornitore è stato eliminato" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Prezzo Unitario" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totale" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "Risultati Test" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Risultato" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "Nessun risultato" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Elementi installati" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seriale" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "ID Posizione" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Percorso Ubicazione" @@ -9279,7 +9421,7 @@ msgstr "Nome Fornitore" msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installato In" @@ -9304,9 +9446,9 @@ msgstr "Revisione Necessaria" msgid "Delete on Deplete" msgstr "Elimina al esaurimento" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Data di Scadenza" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Proprietario" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Esterno" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Si tratta di una posizione esterna al magazzino" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantità deve essere 1 per elementi con un numero di serie" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "L'elemento non può appartenere a se stesso" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Elemento di magazzino principale" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Questo elemento è stato installato su un altro elemento?" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Genera Costruzione" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Costruisci per questo elemento di magazzino" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Origina Ordine di Acquisto" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Ordine d'acquisto per questo articolo in magazzino" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Destinazione Ordine di Vendita" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Prezzo di acquisto unitario al momento dell’acquisto" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "Convertito in articolo" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "L'articolo non è impostato come tracciabile" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "La quantità deve essere un numero intero" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "I numeri di serie devono essere numeri interi" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Scaduto" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Elementi secondari" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Inserisci il numero di elementi di magazzino da serializzare" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantità non deve superare la quantità disponibile ({q})" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Inserisci i numeri di serie per i nuovi elementi" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Note opzionali elemento" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Numeri di serie non possono essere assegnati a questo articolo" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Seleziona elementi di magazzino da installare" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "Aggiungi nota di transazione (opzionale)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Elemento di magazzino non disponibile" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "L'articolo selezionato non è nella Fattura dei Materiali" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "Posizione di destinazione per gli elementi disinstallati" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "L'articolo selezionato non è una valida opzione per la conversione" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "Posizione di destinazione per l'elemento restituito" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sottoallocazioni" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "L'articolo deve essere vendibile" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "L'elemento è assegnato a un ordine di vendita" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Elemento assegnato a un ordine di costruzione" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Cliente a cui assegnare elementi di magazzino" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "L'azienda selezionata non è un cliente" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Note di fusione di magazzino" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "Consenti fornitori non corrispondenti" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "Consenti stato non corrispondente" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Devono essere riforniti almeno due elementi in magazzino" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "Valore di chiave primaria StockItem" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Note sugli spostamenti di magazzino" @@ -9971,7 +10117,7 @@ msgstr "In quarantena" msgid "Legacy stock tracking entry" msgstr "Voce di tracciamento stock preesistente" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Elemento stock creato" @@ -10027,7 +10173,7 @@ msgstr "Diviso dall'elemento genitore" msgid "Split child item" msgstr "Dividi elemento figlio" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Elemento stock raggruppato" @@ -10047,7 +10193,7 @@ msgstr "Build order output completato" msgid "Build order output rejected" msgstr "Ordine di costruzione rifiutato" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Impegnato dall'ordine di costruzione" @@ -10108,7 +10254,7 @@ msgstr "Note Elemento di magazzino" msgid "Installed Stock Items" msgstr "Elementi di magazzino installati" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Installa Elemento Magazzino" @@ -10116,7 +10262,7 @@ msgstr "Installa Elemento Magazzino" msgid "Delete all test results for this stock item" msgstr "Elimina tutti i risultati del test per questo elemento di magazzino" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Scansiona nella posizione" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Impostazioni di stampa" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "Azioni adeguamento giacenza" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Conta giacenza" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Aggiungi giacenza" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Rimuovi giacenza" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Serializza magazzino" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Trasferisci giacenza" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Assegna al cliente" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "Cancella elemento di magazzino" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produzione" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Non sei nell'elenco dei proprietari di questo elemento. Questo elemento di magazzino non può essere modificato." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Sola lettura" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Vai al numero di serie successivo" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Nessuna posizione impostata" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "Nessun inventario eseguito" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "Questa azione non può essere facilmente annullata" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "Crea elementi serializzati da questo elemento di magazzino." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seleziona la quantità da serializzare e i numeri di serie univoci." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Esegui inventario per questa ubicazione di magazzino" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Individua ubicazione di magazzino" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Scansiona gli elementi in magazzino in questa ubicazione" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Scansiona Elementi Stock" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Scansiona il contenitore magazzino in questa posizione" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Scansiona container" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Azioni posizione" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Modifica la posizione" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Elimina la posizione" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Posizione stock di livello superiore" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Proprietario Posizione" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Crea nuova posizione di magazzino" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nuova Posizione" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "Percorso d'installazione" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Integrato" @@ -10796,7 +10942,7 @@ msgstr "Questo è un plugin integrato che non può essere disabilitato" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Esempio" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Elimina" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Invia Segnalazione Bug" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "copia negli appunti" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "I seguenti articoli sono pochi nel magazzino richiesto" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Quantità richiesta" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "Clicca il seguente link per visualizzare questo articolo" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Quantità minima" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "Esistono errori nel modulo" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "Le notifiche verranno caricate qui" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Aggiungi" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Impostazioni e-mail" msgid "Email settings not configured" msgstr "Impostazioni dell'email non configurate" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Si" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 87cd537ffb..a3de500866 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -56,29 +56,30 @@ msgstr "エラーの詳細は管理者パネルで確認できます" msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "メモ" @@ -91,118 +92,122 @@ msgstr "値 '{name}' はパターン形式で表示されません" msgid "Provided value does not match required pattern: " msgstr "指定された値が必要なパターンと一致しません: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "パスワードを入力してください" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "新しいパスワードを入力してください。" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "パスワードの確認" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "新しいパスワードの確認" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "古いパスワード" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "メールアドレス(確認用)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "メールアドレスの確認" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "毎回同じメールアドレスを入力する必要があります。" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "指定されたプライマリEメールアドレスは無効です。" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "指定されたメールドメインは承認されていません。" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "この値からHTMLタグを削除" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "サーバは無効なステータスコードで応答しました" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "例外が発生しました" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "サーバーが無効なContent-Length値で応答しました" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "画像サイズが大きすぎます" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "画像のダウンロードが最大サイズを超えました" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "リモートサーバーが空のレスポンスを返しました" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "メールアドレス" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "プラグインメタデータ" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "外部プラグインで使用するためのJSONメタデータフィールド" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "説明" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "マークダウンメモ (オプション)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "バーコード情報" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "サードパーティ製バーコードデータ" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "外部画像ファイルのURL" msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "バックグラウンドワーカーのチェックに失敗しました" @@ -726,59 +731,59 @@ msgstr "InvenTree について" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "オプション" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "組立注文" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "組立注文" msgid "Build Orders" msgstr "組立注文" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "パーツ" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "組立状況" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "作成日時" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部リンク" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "外部 サイト へのリンク" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "組立優先度" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "数量" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "シリアル番号" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "ステータス" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "組立ライン" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "シリアル番号" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "シリアル番号" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "追跡可能" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "処理待ち" @@ -1647,16 +1677,21 @@ msgstr "処理待ち" msgid "Production" msgstr "生産" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "キャンセル済" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "完了" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "組立を編集" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "組立をキャンセル" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "組立をキャンセル" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "組立を削除" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "外部URLからの画像ダウンロードを許可する" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "外部URL画像の最大サイズ" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "テンプレート" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "コンポーネント" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "販売可能" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "シリアル番号を自動入力" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "メールアドレスは必須です" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "非アクティブな部品を非表示" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "購読中の部品を表示" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "購読中のカテゴリを表示" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "ユーザー" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "リンク" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "添付ファイル" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "ファイルがありません" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "コメント:" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "連絡先メールアドレス" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "製造元" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "仕入先" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "顧客" @@ -4586,7 +4647,7 @@ msgstr "新しいサプライヤー・パーツを作成" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" @@ -4599,7 +4660,7 @@ msgstr "メーカー・パーツ" msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "メーカー" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "パーツの注文" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "メーカー・パーツを削除" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "内部パーツ" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "仕入先" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "パラメータ" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "在庫商品" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "外部ページへのリンク" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "発送済み" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "割り当てるシリアル番号を入力" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "紛失" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "返品済" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "処理中" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "キーワード" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "カテゴリID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "カテゴリ名" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "パーツ" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "カテゴリ" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "パーツカテゴリ" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "サブカテゴリ" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "カテゴリを選択" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "このカテゴリの通知を受け取る" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "カテゴリを編集" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "カテゴリを編集" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "カテゴリを削除" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "カテゴリを削除" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "トップレベルのパーツカテゴリ" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "パーツ (サブカテゴリを含む)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "新規パーツを作成" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "新規パーツ" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "パーツパラメータ" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "新しいパーツカテゴリを作成" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "新規カテゴリ" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "このパーツの通知を受け取る" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "在庫" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "在庫切れ" @@ -8332,100 +8432,108 @@ msgstr "アクションが指定されていません" msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "シリアル番号が既に存在します" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "期限切れ" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "パーツは販売可能でなければなりません" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "在庫商品を作成しました" @@ -10027,7 +10173,7 @@ msgstr "親アイテムから分割する" msgid "Split child item" msgstr "子項目を分割" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "商品在庫をマージしました" @@ -10047,7 +10193,7 @@ msgstr "組立注文の出力が完了しました" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "組立" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "このパーツを表示するには、次のリンクをクリックしてください" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "最小在庫" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "メール設定" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index e31d462652..f341c4edc7 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 74db2b7b39..009161196f 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "Ievadiet datumu" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Piezīmes" @@ -91,118 +92,122 @@ msgstr "Vērtība '{name}' neparādās vajadzīgajā formātā" msgid "Provided value does not match required pattern: " msgstr "Norādītā vērtība neatbilst nepieciešamajam formātam: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ievadiet paroli" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ievadiet jaunu paroli" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Apstiprināt paroli" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Apstiprināt jauno paroli" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Vecā parole" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-pasts (vēlreiz)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-pasta adreses apstiprinājums" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Katru reizi jāievada viena un tā pati e-pasta adrese." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Norādītā primārā e-pasta adrese nav derīga." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Norādītais e-pasta domēns nav apstiprināts." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Reģistrācija ir izslēgta." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Norādītais daudzums nav derīgs" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tukša sērijas numura rinda" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Atkārtojas sērijas numurs" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nederīgs grupas diapazons: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grupas diapazons {group} pārsniedz pieļaujamo daudzumu ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nederīga grupas secība: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Netika atrasts neviens sērijas numurs" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Unikālo sērijas numuru skaitam ({len(serials)}) jāatbilst daudzumam ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Noņemiet HTML tagus no šīs vērtības" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Savienojuma kļūda" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveris atbildēja ar nederīgu statusa kodu" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Radās izņēmums" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveris atbildēja ar nederīgu Content-Length vērtību" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Attēla izmērs ir pārāk liels" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Attēla lejupielāde pārsniedz maksimālo izmēru" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Attālais serveris atgrieza tukšu atbildi" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Norādītajā URL nav derīgs attēla fails" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 24a42c0386..0ce6dfc784 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -56,29 +56,30 @@ msgstr "Error details kunnen worden gevonden in het admin scherm" msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Opmerkingen" @@ -91,118 +92,122 @@ msgstr "Waarde '{name}' verschijnt niet in patroonformaat" msgid "Provided value does not match required pattern: " msgstr "Opgegeven waarde komt niet overeen met vereist patroon: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Voer wachtwoord in" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Voer een nieuw wachtwoord in" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Wachtwoord bevestigen" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Nieuw wachtwoord bevestigen" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Oude wachtwoord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-mailadres (opnieuw)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-mailadres bevestiging" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Het opgegeven primaire e-mailadres is ongeldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplicaat serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Verwijder HTML tags van deze waarde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata moeten een python dict object zijn" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata veld, voor gebruik door externe plugins" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Onbekende opmaaksleutel gespecificeerd" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Vereiste opmaaksleutel ontbreekt" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referentieveld mag niet leeg zijn" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referentie moet overeenkomen met verplicht patroon" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referentienummer is te groot" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown notitie (optioneel)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Streepjescode gegevens" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Streepjescode van derden" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hash van Streepjescode" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Actief" @@ -662,7 +667,7 @@ msgstr "URL van extern afbeeldingsbestand" msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Achtergrondwerker check is gefaald" @@ -726,59 +731,59 @@ msgstr "Over InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Optioneel" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Gevolgd" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Beschikbaar" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Productieorder" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Productieorder" msgid "Build Orders" msgstr "Productieorders" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Ongeldige keuze voor bovenliggende productie" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referentie" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Korte beschrijving van de build (optioneel)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Bovenliggende Productie" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Productieorder waar deze productie aan is toegewezen" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Onderdeel" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Selecteer onderdeel om te produceren" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Verkooporder Referentie" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar deze productie aan is toegewezen" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Bronlocatie" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Selecteer de locatie waar de voorraad van de productie vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Bestemmings Locatie" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Productiehoeveelheid" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Aantal voorraaditems om te produceren" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Voltooide voorraadartikelen" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Aantal voorraadartikelen die zijn voltooid" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Productiestatus" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Productiestatuscode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchcode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Aanmaakdatum" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Verwachte opleveringsdatum" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Opleveringsdatum" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "voltooid door" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Uitgegeven door" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Verantwoordelijke" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Externe Link" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link naar externe URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Bouw prioriteit" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Prioriteit van deze bouwopdracht" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Prioriteit van deze bouwopdracht" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Project code voor deze build order" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Productieorder {build} is voltooid" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Productie uitvoer is al voltooid" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Hoeveelheid kan niet groter zijn dan aantal" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Bouw object" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Bouw object" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Vereiste hoeveelheid voor bouwopdracht" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Onderdeel naam" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Productieuitvoer" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Deze productieuitvoer is al voltooid" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Deze productieuitvoer is niet volledig toegewezen" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor productie uitvoer" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummers" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Voer serienummers in voor productieuitvoeren" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Locatie" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Serienummers automatisch toewijzen" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "De volgende serienummers bestaan al of zijn ongeldig" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Een lijst van productieuitvoeren moet worden verstrekt" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Voorraadlocatie voor geannuleerde outputs" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Toewijzingen weggooien" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Verwijder alle voorraadtoewijzingen voor geannuleerde outputs" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Reden voor annulering van bouworder(s)" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Incomplete Toewijzing Accepteren" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Verwijder Incomplete Uitvoeren" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Niet toegestaan" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Accepteer zoals geconsumeerd onder deze bouwopdracht" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "De-alloceren voordat deze bouwopdracht voltooid wordt" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Overgealloceerde voorraad" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hoe wilt u omgaan met extra voorraaditems toegewezen aan de bouworder" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Sommige voorraadartikelen zijn overalloceerd" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Accepteer Niet-toegewezen" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Vereiste voorraad is niet volledig toegewezen" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Accepteer Onvolledig" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Vereiste productiehoeveelheid is voltooid" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Productieorder heeft onvolledige uitvoeren" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Productielijn" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Productieuitvoer" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Productieuitvoer moet naar dezelfde productie wijzen" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Bouw lijn-item" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Beschikbare hoeveelheid ({q}) overschreden" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Allocaties voor artikelen moeten worden opgegeven" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Locatie uitsluiten" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Uitwisselbare voorraad" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Vervangende Voorraad" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Toewijzing van vervangende onderdelen toestaan" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Optionele Items" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Alloceer optionele BOM items om bestelling te bouwen" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Fabrikant artikel nummer (MPN)" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Onderdeel-id" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Serienummer" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Onderdeel omschrijving" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Serienummer" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Volgbaar" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Stuklijstartikel" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "In bestelling" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Beschikbare Voorraad" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Bezig" @@ -1647,16 +1677,21 @@ msgstr "Bezig" msgid "Production" msgstr "Productie" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Geannuleerd" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Voltooid" @@ -1684,8 +1719,8 @@ msgstr "Miniatuurweergave van onderdeel" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barcode acties" @@ -1696,7 +1731,7 @@ msgstr "Barcode acties" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "QR-code weergeven" @@ -1707,7 +1742,7 @@ msgstr "QR-code weergeven" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Barcode loskoppelen" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Koppel Barcode" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Bewerk Productie" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Annuleer Productie" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Dupliceer Bouw" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Annuleer Productie" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Verwijder Productie" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Voltooi Productie" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Productiebeschrijving" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Er zijn geen productuitvoeren aangemaakt voor deze productieorder" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Productieorder is gereed om te markeren als voltooid" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Productieorder kan niet worden voltooid omdat er nog producties openstaan" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Vereiste Producthoeveelheid is nog niet bereikt" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Streefdatum" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Deze productie was verwacht op %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Achterstallig" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Voltooide Uitvoeren" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Verkooporder" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Uitgegeven door" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioriteit" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Bestemming" @@ -1890,21 +1945,21 @@ msgstr "Toegewezen Onderdelen" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Gecreëerd" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Geen doeldatum ingesteld" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Voltooid" @@ -1987,7 +2042,11 @@ msgstr "Verbruikte voorraad" msgid "Completed Build Outputs" msgstr "Voltooide Productieuitvoeren" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Voltooide Productieuitvoeren" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bijlagen" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Productie notities" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nieuwe Productieorder" @@ -2037,15 +2096,20 @@ msgstr "Artikelen" msgid "Incomplete Outputs" msgstr "Onvolledige Productieuitvoeren" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Bestand" msgid "Select {name} file to upload" msgstr "Kies {name} bestand om te uploaden" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Bijgewerkt" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Tijdstempel van laatste update" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unieke projectcode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projectbeschrijving" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Instellingswaarde" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Gekozen waarde is geen geldige optie" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Sleutelreeks moet uniek zijn" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Geen groep" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Opnieuw opstarten vereist" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Migraties in behandeling" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "ID Serverinstantie" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Stringbeschrijving voor de server instantie" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Gebruik de instantie naam" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Gebruik de naam van de instantie in de titelbalk" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Tonen `over` beperken" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Toon de `over` modal alleen aan superusers" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Bedrijfsnaam" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Interne bedrijfsnaam" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Basis URL voor serverinstantie" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standaard Valuta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Selecteer basisvaluta voor de berekening van prijzen" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dagen" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Download van URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Download limiet" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maximale downloadgrootte voor externe afbeelding" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent gebruikt om te downloaden van URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Bevestiging vereist" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Boomstructuur Diepte" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Interval voor update" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatische backup" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Automatische back-up van database- en mediabestanden inschakelen" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automatische backup interval" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Geef het aantal dagen op tussen geautomatiseerde backup" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interval Taak Verwijderen" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Error Log Verwijderings Interval" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Interval Verwijderen Notificatie" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Streepjescodeondersteuning" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Barcode Invoer Vertraging" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Barcode invoerverwerking vertraging" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Barcode Webcam Ondersteuning" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode via webcam scannen in browser toestaan" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "Herzieningen onderdeel" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "Revisieveld voor onderdeel inschakelen" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "Herzieningen onderdeel" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "Revisieveld voor onderdeel inschakelen" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Duplicaat IPN toestaan" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopieer Onderdeel Stuklijstgegevens" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopieer Onderdeel Parametergegevens" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopieer Onderdeel Testdata" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopiëer Categorieparameter Sjablonen" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Sjabloon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Samenstelling" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Koopbaar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Verkoopbaar" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtueel" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Toon Import in Weergaven" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Toon de importwizard in sommige onderdelenweergaven" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Verwante onderdelen tonen" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Initiële voorraadgegevens" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Initiële leveranciergegevens" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Onderdelennaam Weergaveopmaak" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standaardicoon voor onderdeel catagorie" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Forceer Parameter Eenheden" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimaal aantal prijs decimalen" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maximum prijs decimalen" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Gebruik leveranciersprijzen" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Aankoopgeschiedenis overschrijven" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische order prijzen overschrijven de prijzen van de leverancier" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Gebruik voorraaditem prijzen" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Voorraad artikelprijs leeftijd" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Gebruik variantprijzen" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenprijzen opnemen in de totale prijsberekening" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Alleen actieve varianten" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Prijzen Herbouw interval" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Prijzen" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Inschakelen van interne prijzen voor onderdelen" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Interne prijs overschrijven" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Activeer Testrapporten" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Activeer het genereren van testrapporten" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Testrapporten Toevoegen" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globaal unieke serienummers" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Serienummers automatisch invullen" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Automatisch invullen van serienummer in formulieren" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Verwijder uitgeputte voorraad" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Voorraadlocatie standaard icoon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Standaard locatie pictogram (leeg betekent geen icoon)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Geïnstalleerde voorraad items weergeven" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Retourorders inschakelen" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Retourorder referentie patroon" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Bewerk voltooide retourorders" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Schakel gebruikersregistratie met SSO in" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "SSO-gebruikers automatisch invullen" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Wachtwoord tweemaal" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Toegestane domeinen" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Plugins toestaan om URL-routes toe te voegen" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Activeer navigatie integratie" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Plugins toestaan om te integreren in navigatie" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Activeer app integratie" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Activeer plug-ins om apps toe te voegen" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Activeer planning integratie" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Activeer plugin om periodiek taken uit te voeren" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Activeer evenement integratie" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Activeer project codes voor het bijhouden van projecten" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Voorraadcontrole functionaliteit" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Rapport Verwijdering Interval" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Foutrapportages ontvangen" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Meldingen ontvangen van systeemfouten" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Gebruiker" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Prijs" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Geheim" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Koptekst" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Gepubliceerd" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Samenvatting" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Gelezen" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Afbeelding" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Afbeelding" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbool" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definitie" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bijlage" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Ontbrekend bestand" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Opmerking" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Een leeg domein is niet toegestaan." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ongeldige domeinnaam: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Contact e-mailadres" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adres" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basis onderdeel" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Onderdeel selecteren" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Fabrikant" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Fabrikant selecteren" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL voor externe link van het fabrikant onderdeel" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Omschrijving onderdeel fabrikant" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parameternaam" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Waarde" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Eenheden" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parameter eenheden" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Leveranciersonderdeel" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverancier" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Leverancier selecteren" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Selecteer fabrikant onderdeel" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Opmerking" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "basisprijs" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "meerdere" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Order meerdere" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "Afbeelding downloaden van URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Klant" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nieuw leveranciers onderdeel" @@ -4599,7 +4660,7 @@ msgstr "Fabrikant onderdelen" msgid "Create new manufacturer part" msgstr "Maak nieuw fabrikant onderdeel" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nieuw fabrikant onderdeel" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Nieuwe Inkooporder" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Fabrikanten" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Order onderdeel" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Fabrikant onderdeel verwijderen" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Intern onderdeel" @@ -4734,7 +4795,7 @@ msgstr "Geen fabrikanten informatie beschikbaar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Leveranciers" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Order Onderdeel" @@ -4824,12 +4885,12 @@ msgstr "Verwijder leveranciers onderdeel" msgid "No supplier information available" msgstr "Geen leveranciersinformatie beschikbaar" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Nieuw voorraadartikel aanmaken" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nieuw Voorraadartikel" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Totaalprijs" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Link naar externe pagina" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Inkooporder status" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Leveranciersreferentie" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Order referentiecode van leverancier" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "ontvangen door" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Datum van uitgifte" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Order uitgegeven op datum" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Order voltooid op datum" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "verwijderd" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Ontvangen" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Verzonden" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Zending" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Regel" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikel" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Order kan niet worden geannuleerd" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Order is niet open" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Valuta Inkoopprijs" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Leveranciersonderdeel moet worden gespecificeerd" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Inkooporder moet worden gespecificeerd" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "De leverancier moet overeenkomen met de inkooporder" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Inkooporder moet overeenkomen met de leverancier" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Artikel" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Artikelregel komt niet overeen met inkooporder" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Voer serienummers in voor inkomende voorraadartikelen" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Streepjescode is al in gebruik" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Artikelen moeten worden opgegeven" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "Bestemmingslocatie moet worden opgegeven" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Geleverde streepjescodewaarden moeten uniek zijn" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Valuta verkoopprijs" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Geen verzenddetails opgegeven" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "Artikelregel is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "Hoeveelheid moet positief zijn" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Voer serienummers in om toe te wijzen" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "Verzending is al verzonden" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "Zending is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Geen overeenkomst gevonden voor de volgende serienummers" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "De volgende serienummers zijn al toegewezen" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Kwijt" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Retour" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "In Behandeling" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Retour" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Herstel" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Vervangen" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Restitutie" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Afwijzen" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Order bewerken" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Order annuleren" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Order annuleren" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Order markeren als voltooid" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Order Voltooien" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Order Referentie" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Order Beschrijving" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Geen leveranciersinformatie beschikbaar" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Afgeronde artikelen" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Incompleet" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Uitgegeven" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Totale kosten" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Totale kosten konden niet worden berekend" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Rij verwijderen" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "Pakbon afdrukken" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Klantreferentie" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "Print verkooporderrapport" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Voltooi Verkooporder" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Deze Verkooporder is niet volledig toegewezen" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Voltooide Verzendingen" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Verzendingen in behandeling" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Acties" @@ -6272,21 +6343,21 @@ msgstr "{part} stukprijs bijgewerkt naar {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Onderdelen" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Binnenkomende Inkooporder" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Uitgaande Verkooporder" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Geproduceerde voorraad door Productieorder" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Voorraad vereist voor Productieorder" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standaard locatie" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Totale Voorraad" @@ -6504,784 +6579,785 @@ msgstr "Totale Voorraad" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Onderdeel Categorieën" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Onderdelen mogen niet rechtstreeks aan een structurele categorie worden toegewezen, maar kunnen worden toegewezen aan subcategorieën." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Onderdeel naam" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Standaardleverancier" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Eenheden voor dit onderdeel" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Ingeschakeld" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Geen onderdelen geselecteerd" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Afbeelding kopiëren" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Parameters kopiëren" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Parameter data kopiëren van het originele onderdeel" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Categorie bewerken" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Categorie verwijderen" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Onderdeel Parameters" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nieuwe Categorie" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Verkoopordertoewijzingen" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Een parameter toevoegen" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Assemblages" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Productieordertoewijzingen" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Onderdeelfabrikanten" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Formaat" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Selecteer bestandsindeling" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Label afdrukken" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Voorraad acties" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Voorraad" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "Geen actie gespecificeerd" msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Stukprijs" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Totaal" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Sublocaties" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "In quarantaine geplaatst" msgid "Legacy stock tracking entry" msgstr "Verouderde volgcode" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Voorraaditem gemaakt" @@ -10027,7 +10173,7 @@ msgstr "Splits van bovenliggend item" msgid "Split child item" msgstr "Splits onderliggende item" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Samengevoegde voorraadartikelen" @@ -10047,7 +10193,7 @@ msgstr "Product voltooid" msgid "Build order output rejected" msgstr "Build order uitvoer afgewezen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Verbruikt door productieorder" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Scan naar Locatie" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Voorraad tellen" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Voorraad overzetten" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Product" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Geen locatie ingesteld" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Locatie acties" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Bewerk locatie" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Verwijder locatie" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Maak nieuwe voorraadlocatie" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nieuwe Locatie" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Verwijderen" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "De volgende onderdelen hebben een lage vereiste voorraad" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Vereiste Hoeveelheid" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index 30dc19509d..b80f08acb2 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:46\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -28,7 +28,7 @@ msgstr "Brukeren har ikke rettigheter til å se denne modellen" #: InvenTree/conversion.py:160 #, python-brace-format msgid "Invalid unit provided ({unit})" -msgstr "" +msgstr "Ugyldig enhet angitt ({unit})" #: InvenTree/conversion.py:177 msgid "No value provided" @@ -56,29 +56,30 @@ msgstr "Feildetaljer kan finnes i admin-panelet" msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notater" @@ -91,124 +92,128 @@ msgstr "Verdi '{name}' vises ikke i mønsterformat" msgid "Provided value does not match required pattern: " msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Oppgi passord" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Oppgi nytt passord" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekreft passord" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekreft nytt passord" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Gammelt passord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-post (gjenta)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekreft e-postaddresse" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du må angi samme e-post hver gang." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den oppgitte primære e-postadressen er ikke gyldig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering er deaktivert." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Duplisert serienummer" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppesekvens {group} overskrider tillatt antall ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Antall unike serienumre ({len(serials)}) må samsvare med antallet ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tagger fra denne verdien" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Arabisk" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +249,7 @@ msgstr "Spansk (Meksikansk)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Estisk" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -264,7 +269,7 @@ msgstr "Hebraisk" #: InvenTree/locales.py:32 msgid "Hindi" -msgstr "" +msgstr "Hindi" #: InvenTree/locales.py:33 msgid "Hungarian" @@ -284,7 +289,7 @@ msgstr "Koreansk" #: InvenTree/locales.py:37 msgid "Latvian" -msgstr "" +msgstr "Latvisk" #: InvenTree/locales.py:38 msgid "Dutch" @@ -308,7 +313,7 @@ msgstr "Portugisisk (Brasil)" #: InvenTree/locales.py:43 msgid "Romanian" -msgstr "" +msgstr "Rumensk" #: InvenTree/locales.py:44 msgid "Russian" @@ -340,7 +345,7 @@ msgstr "Tyrkisk" #: InvenTree/locales.py:51 msgid "Ukrainian" -msgstr "" +msgstr "Ukrainsk" #: InvenTree/locales.py:52 msgid "Vietnamese" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Logg inn på appen" msgid "Email" msgstr "E-post" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Feil under validering av utvidelse" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata må være et python dict-objekt" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Utvidelse-metadata" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Ukjent formatnøkkel spesifisert" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøkkel" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referansefeltet kan ikke være tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referansen må samsvare påkrevd mønster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referansenummeret er for stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown-notater (valgfritt)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Strekkodedata" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Tredjeparts strekkodedata" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Strekkode-hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Må være et gyldig tall" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -537,7 +542,7 @@ msgstr "Fornavn" #: InvenTree/serializers.py:409 msgid "First name of the user" -msgstr "" +msgstr "Fornavn på brukeren" #: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" @@ -545,44 +550,44 @@ msgstr "Etternavn" #: InvenTree/serializers.py:412 msgid "Last name of the user" -msgstr "" +msgstr "Etternavn på brukeren" #: InvenTree/serializers.py:415 msgid "Email address of the user" -msgstr "" +msgstr "E-postadressen til brukeren" #: InvenTree/serializers.py:439 msgid "Staff" -msgstr "" +msgstr "Personale" #: InvenTree/serializers.py:439 msgid "Does this user have staff permissions" -msgstr "" +msgstr "Har denne brukeren personelltillatelser" #: InvenTree/serializers.py:442 msgid "Superuser" -msgstr "" +msgstr "Superbruker" #: InvenTree/serializers.py:442 msgid "Is this user a superuser" -msgstr "" +msgstr "Er denne brukeren en superbruker" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktiv" #: InvenTree/serializers.py:445 msgid "Is this user account active" -msgstr "" +msgstr "Er denne brukerkontoen aktiv" #: InvenTree/serializers.py:463 msgid "You do not have permission to change this user role." @@ -662,7 +667,7 @@ msgstr "URLtil ekstern bildefil" msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Sjekk av bakgrunnsarbeider mislyktes" @@ -726,59 +731,59 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Valgfritt" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Spores" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Tildelt" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Tilgjengelig" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Produksjonsordre" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Produksjonsordre" msgid "Build Orders" msgstr "Produksjonsordrer" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" -msgstr "" +msgstr "Sammenstillings-BOMen er ikke godkjent" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" -msgstr "" +msgstr "Produksjonsordre kan ikke opprettes for en inaktiv del" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" -msgstr "" +msgstr "Produksjonsordre kan ikke opprettes for en ulåst del" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Ugyldig valg for overordnet produksjon" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" -msgstr "" +msgstr "Ansvarlig bruker eller gruppe må spesifiseres" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Produksjonsordrens del kan ikke endres" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Produksjonsordre-referanse" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referanse" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Kort beskrivelse av produksjonen (valgfritt)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Overordnet produksjon" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Produksjonsordre som denne produksjonen er tildelt" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Velg del å produsere" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Salgsordrereferanse" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Salgsordren denne produksjonen er tildelt til" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kildeplassering" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Velg plassering å ta lagerbeholdning fra for denne produksjonen (la stå tomt for a ta fra alle lagerplasseringer)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Fullført plassering" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Velg plassering der fullførte artikler vil bli lagret" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Produksjonsmengde" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Antall lagervarer å produsere" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Fullførte artikler" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Antall lagervarer som er fullført" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Produksjonsstatus" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Produksjonsstatuskode" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkode" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Batchkode for denne produksjonsartikkelen" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Opprettelsesdato" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Forventet sluttdato" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Fullført dato" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "fullført av" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Utstedt av" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Brukeren som utstedte denne produksjonsordren" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarlig" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Ekstern lenke" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Lenke til ekstern URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Produksjonsprioritet" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Produksjonsordrens prioritet" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Produksjonsordrens prioritet" msgid "Project Code" msgstr "Prosjektkode" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Prosjektkode for denne produksjonsordren" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "Kunne ikke delegere bort oppgaven for å fullføre tildelinger" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Produksjonsordre {build} er fullført" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "En produksjonsordre er fullført" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Ingen produksjonsartikkel spesifisert" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Produksjonsartikkelen er allerede fullført" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Kvantitet kan ikke være større enn utgangsantallet" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "Produksjonsartikkel {serial} har ikke bestått alle påkrevde tester" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" -msgstr "" +msgstr "Produksjonsartikkel" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Produksjonsobjekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Produksjonsobjekt" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Antall" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Påkrevd antall for produksjonsordre" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del er merket som sporbar" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må være 1 for serialisert lagervare" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Kildelagervare" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Lagerantall å tildele til produksjonen" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Monteres i" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Lagervare for montering" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Delnavn" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" -msgstr "" +msgstr "Etikett for prosjektkode" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Produksjonsartikkel" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Produksjonsartikkel samsvarer ikke med overordnet produksjon" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Resultatdel samsvarer ikke med produksjonsordredel" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Denne produksjonsartikkelen er allerede fullført" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Denne produksjonsartikkelen er ikke fullt tildelt" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Angi antall for produksjonsartikkel" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Heltallsverdi kreves for sporbare deler" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Angi serienummer for produksjonsartikler" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Plassering" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" -msgstr "" +msgstr "Lagerplassering for produksjonsartikkel" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Automatisk tildeling av serienummer" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" -msgstr "" +msgstr "Serienumre må angis for sporbare deler" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienummer finnes allerede eller er ugyldige" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "En liste over produksjonsartikler må oppgis" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Lagerplassering for skrotede produksjonsartikler" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Forkast tildelinger" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Forkast tildelinger fra skrotede produksjonsartikler" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Grunn for skroting av produksjonsartikler" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Plassering for ferdige produksjonsartikler" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" -msgstr "" +msgstr "Status" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Godta ufullstendig tildeling" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Fullfør artikler dersom lagerbeholdning ikke er fullt tildelt" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" -msgstr "" +msgstr "Bruk tildelt lagerbeholdning" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" -msgstr "" +msgstr "Bruk all lagerbeholdning som allerede er tildelt denne produksjonen" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Fjern ufullstendige artikler" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Slett alle produksjonsartikler som ikke er fullført" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Ikke tillatt" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Godta som brukt av denne produksjonsordren" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Fjern tildeling før produksjonsordren fullføres" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Overtildelt lagerbeholdning" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hvordan vil du håndtere ekstra lagervarer tildelt produksjonsordren" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Noen lagervarer har blitt overtildelt" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Godta ikke tildelt" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Godta at lagervarer ikke er fullt tildelt til denne produksjonsordren" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Nøvendig lagerbeholdning er ikke fullt tildelt" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Godta uferdig" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Godta at nødvendig antall fullførte produksjonsartikler ikke er nådd" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Nødvendig produksjonsmengde er ikke nådd" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Produksjonsordren har uferdige artikler" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Produksjonslinje" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Produksjonsartikkel" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Produksjonsartikkel må peke til samme produksjon" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Produksjonsartikkel" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part må peke på den samme delen som produksjonsordren" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Artikkelen må være på lager" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Tilgjengelig antall ({q}) overskredet" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Produksjonsartikkel må spesifiseres for tildeling av sporede deler" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Tildelingsartikler må oppgis" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lagerplassering hvor deler skal hentes (la stå tomt for å ta fra alle plasseringer)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Eksluderer plassering" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Ekskluder lagervarer fra denne valgte plasseringen" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Utskiftbar lagerbeholdning" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagervarer ved flere plasseringer kan brukes om hverandre" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Erstatning-lagerbeholdning" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Tilatt tildelling av erstatningsdeler" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Valgfrie artikler" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Tildel valgfrie BOM-artikler til produksjonsordre" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" -msgstr "" +msgstr "Kunne ikke starte auto-tideling" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" -msgstr "" +msgstr "Leverandørens delnummer" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Produsentens varenummer" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Plasseringsnavn" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" -msgstr "" +msgstr "Produksjonsreferanse" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" -msgstr "" +msgstr "BOM-referanse" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Emballasje" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Del-ID" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "Del -IPN" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Serienummer" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Tilgjengelig antall" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Delbeskrivelse" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Serienummer" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "Tildelt antall" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Tilgjengelig antall" + +#: build/serializers.py:1274 msgid "Part Category ID" -msgstr "" +msgstr "Delkategori-ID" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" -msgstr "" +msgstr "Delkategorinavn" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Sporbar" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" -msgstr "" +msgstr "Nedarvet" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Tillat Varianter" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM-artikkel" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Tildelt lagerbeholdning" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "I bestilling" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "I produksjon" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Tilgjengelig lagerbeholdning" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" -msgstr "" +msgstr "Tilgjengelige erstatningsvarer" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" -msgstr "" +msgstr "Tilgjengelige variantvarer" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" -msgstr "" +msgstr "Totalt tilgjengelig lagerbeholdning" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" -msgstr "" +msgstr "Ekstern lagerbeholdning" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ventende" @@ -1647,16 +1677,21 @@ msgstr "Ventende" msgid "Production" msgstr "Produksjon" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Kansellert" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Fullført" @@ -1684,8 +1719,8 @@ msgstr "Miniatyrbilde for del" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Strekkodehandlinger" @@ -1696,7 +1731,7 @@ msgstr "Strekkodehandlinger" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Vis QR-kode" @@ -1707,7 +1742,7 @@ msgstr "Vis QR-kode" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Fjern strekkodekobling" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Koble mot strekkode" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Rediger Produksjon" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Kanseller produksjon" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Dupliser Produksjon" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Kanseller produksjon" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Slett Produksjon" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Fullfør Produksjon" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Produksjonsbeskrivelse" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Ingen produksjonsartikler har blitt opprettet for produksjonsordren" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Produksjonsordren er klar til å merkes som fullført" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Produksjonsordren kan ikke fullføres på grunn av utestående artikler" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Nødvendig produksjonsantall er ikke oppnådd enda" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Måldato" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Denne produksjonsordren forfalt %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Forfalt" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Fullførte byggeresultater" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Fullførte byggeresultater" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Salgsordre" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Utstedt av" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Prioritet" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Slett Produksjonsordre" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "Produksjonsordrens QR-kode" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Koble Strekkode til Produksjonsordre" @@ -1875,8 +1930,8 @@ msgstr "Lagerkilde" msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige plasseringer." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Destinasjon" @@ -1890,21 +1945,21 @@ msgstr "Tildelte deler" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" -msgstr "" +msgstr "Parti" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Opprettet" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Ingen måldato satt" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Fullført" @@ -1928,7 +1983,7 @@ msgstr "Underordnede Produksjonsordrer" #: build/templates/build/detail.html:177 msgid "Build Order Line Items" -msgstr "" +msgstr "Produksjonsartikkel" #: build/templates/build/detail.html:181 msgid "Deallocate stock" @@ -1965,7 +2020,7 @@ msgstr "Bestill deler" #: build/templates/build/detail.html:205 msgid "Available stock has been filtered based on specified source location for this build order" -msgstr "" +msgstr "Tilgjengelig lagerbeholdning er filtrert basert på angitt kildeplassering for denne produksjonsordren" #: build/templates/build/detail.html:215 msgid "Incomplete Build Outputs" @@ -1987,7 +2042,11 @@ msgstr "Brukt lagerbeholdning" msgid "Completed Build Outputs" msgstr "Fullførte produksjonsartikkel" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Fullførte produksjonsartikkel" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Vedlegg" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Produksjonsnotater" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Tildeling fullført" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Alle linjer er fullt tildelt" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Ny produksjonsordre" @@ -2037,29 +2096,34 @@ msgstr "Linjeelementer" msgid "Incomplete Outputs" msgstr "Ufullstendige artikler" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" -msgstr "" +msgstr "Er lenke" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" -msgstr "" +msgstr "Er fil" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" -msgstr "" +msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget" #: common/currency.py:132 msgid "Invalid currency code" -msgstr "" +msgstr "Ugyldig valutakode" #: common/currency.py:134 msgid "Duplicate currency code" -msgstr "" +msgstr "Valutakode eksisterer allerede" #: common/currency.py:139 msgid "No valid currency codes provided" -msgstr "" +msgstr "Ingen gyldige valutakoder angitt" #: common/currency.py:156 msgid "No plugin" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Fil" msgid "Select {name} file to upload" msgstr "Velg {name} fil som skal lastes opp" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Oppdatert" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Tidsstempel for forrige oppdatering" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "Nettstedets URL er låst av konfigurasjon" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unik prosjektkode" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Prosjektbeskrivelse" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Bruker eller gruppe ansvarlig for dette prosjektet" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Innstillings verdi" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Valgt verdi er ikke et gyldig alternativ" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Verdien må være en boolsk verdi" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Verdien må være et heltall" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Nøkkelstreng må være unik" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ingen gruppe" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Omstart kreves" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "En innstilling har blitt endret som krever en omstart av serveren" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ventende migrasjoner" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Antall ventende databasemigreringer" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Navn på serverinstans" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Strengbeskrivelse for serverinstansen" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Bruk instansnavn" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Bruk instansnavnet på tittellinjen" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Begrens visning av 'om'" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Vis `about`-modal kun til superbrukere" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Firmanavn" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Internt firmanavn" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Base-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Base-URL for serverinstans" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Velg grunnvalutaen for prisberegninger" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" -msgstr "" +msgstr "Støttede valutaer" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" -msgstr "" +msgstr "Liste over støttede valutakoder" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Oppdateringsintervall for valuta" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverere)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dager" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Valutaoppdaterings-plugin" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Valgt valutaoppdaterings-plugin" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Last ned fra URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Nedlastingsgrense" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-Agent brukt for å laste ned fra URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Streng URL-validering" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Krev skjemaspesifikasjon ved validering av URLer" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Krev bekreftelse" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Tredybde" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Intervall for oppdateringssjekk" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatisk sikkerhetskopiering" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Automatisk sikkerhetskopieringsintervall" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Slettingsintervall for oppgaver" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Slettingsintervall for feillogg" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Feilloggene vil bli slettet etter et angitt antall dager" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Slettingsintervall for varsler" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Brukervarsler slettes etter angitt antall dager" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Strekkodestøtte" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Aktiver støtte for strekkodeleser i webgrensesnittet" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Innlesingsforsinkelse for strekkode" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Tidsforsinkelse for behandling av strekkode" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Støtte for strekkodewebkamera" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Tillat strekkodelesning via webkamera i nettleseren" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" -msgstr "" +msgstr "Vis Strekkodedata" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" +msgstr "Vis strekkodedata som tekst" + +#: common/models.py:1419 +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1406 +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Delrevisjoner" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Aktiver revisjonsfeltet for Del" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "IPN regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulært uttrykksmønster for matching av internt delnummer" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Tilat duplikat av internt delnummer" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme interne delnummer" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Tillat redigering av internt delnummer" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat endring av IPN-verdien mens du redigerer en del" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Kopier BOM-data fra del" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopier BOM-data som standard når du dupliserer en del" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Kopier parameterdata fra del" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopier parameterdata som standard ved duplisering av en del" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Kopier testdata fra del" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kopier designmaler for kategoriparametere" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Kopier parametermaler for kategori ved oppretting av en del" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mal" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Sammenstilling" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Salgbar" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Vis relaterte deler" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Vis relaterte deler i en del" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Innledende lagerbeholdningsdata" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Innledende leverandørdata" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Visningsformat for delnavn" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Format for å vise delnavnet" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Standardikon for delkategorier" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Tving parameterenheter" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Hvis det er angitt en enhet, skal parameterverdiene samsvare med de angitte enhetene" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Minimum antall desimalplasser for priser" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Maksimalt antall desimalplasser for priser" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Bruk leverandørpriser" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Innkjøpshistorikkoverstyring" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Bruk lagervarepriser" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Lagervare prisalder" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Bruk Variantpriser" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Inkluder variantpriser i beregninger av totale priser" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Kun aktive varianter" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Bruk kun aktive variantdeler til beregning av variantprising" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Intervall for rekalkulering av priser" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Antall dager før delpriser blir automatisk oppdatert" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interne Priser" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Aktiver interne priser for deler" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Intern prisoverstyring" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Aktiver etikettutskrift" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Aktiver utskrift av etiketter fra nettleseren" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etikettbilde-DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Aktiver Rapporter" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Aktiver generering av rapporter" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Feilsøkingsmodus" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sidestørrelse" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standard sidestørrelse for PDF-rapporter" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Aktiver Testrapporter" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Aktiver generering av testrapporter" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Legg ved testrapporter" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Globalt Unike Serienummer" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummer for lagervarer må være globalt unike" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Automatisk tildeling av Serienummer" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Aumatisk fyll ut serienummer i skjemaer" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Slett oppbrukt lagerbeholdning" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Batchkodemal" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Mal for generering av standard batchkoder for lagervarer" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Lagerbeholdning utløper" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Selg utløpt lagerbeholdning" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Tillat salg av utgått lagerbeholdning" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Foreldet lagerbeholdning tidsintervall" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Antall dager før lagervarer er ansett som foreldet før utløp" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Produsér Utløpt Lagerbeholdning" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Tillat produksjon med utløpt lagerbeholdning" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kontroll over eierskap av lagerbeholdning" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Aktiver eierskap over lagerplasseringer og -varer" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Lagerplassering standard ikon" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Vis installerte lagervarer" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Vis installerte lagervarer i lagertabeller" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Produksjonsordre-referansemønster" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Aktiver returordrer" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Returordre-referansemønster" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Rediger fullførte returordrer" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Tillat redigering av returordrer etter de er fullført" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Salgsordre-referansemønster" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Påkrevd mønster for å generere salgsordrereferansefelt" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Salgsordre standard fraktmetode" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Rediger fullførte salgsordrer" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Referansemønster for innkjøpsordre" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Rediger fullførte innkjøpsordre" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Autofullfør innkjøpsordrer" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatisk merk innkjøpsordre som fullført når alle ordrelinjer er mottatt" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Aktiver SSO-registrering" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Krevt at brukere angir e-post ved registrering" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO-brukere" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Spør brukeren om e-post to ganger ved registrering" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Spør brukeren om passord to ganger ved registrering" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Tillatte domener" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Gruppe ved registrering" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Krev MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Sjekk utvidelser ved oppstart" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Aktiver URL-integrasjon" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Tillat utvidelser å legge til URL-ruter" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrasjon" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Tillat utvidelser å integrere mot navigasjon" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Aktiver app-integrasjon" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Tillat utvidelser å legge til apper" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Aktiver tidsplanintegrasjon" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Tillat utvidelser å kjøre planlagte oppgaver" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Aktiver hendelsesintegrasjon" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Aktiver prosjektkoder" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Aktiver prosjektkoder for å spore prosjekter" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Varetellingsfunksjonalitet" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Rapportslettingsintervall" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Vis forfalte produksjoner" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for tekst vist i tabeller" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Motta feilrapporter" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Motta varsler om systemfeil" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Bruker" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Pris" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Sjetong" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Vert" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Tittel" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Lenke" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Forfatter" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Les" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,96 +3832,96 @@ msgstr "Er dette nyhetselementet lest?" msgid "Image" msgstr "Bilde" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Bildefil" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" -msgstr "" +msgstr "Enhetssymbolet må være unikt" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Enhetsnavn må være en gyldig identifikator" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Enhetsnavn" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" -msgstr "" +msgstr "Symbol" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Valgfritt enhetssymbol" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedlegg" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Fil mangler" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" -msgstr "" +msgstr "Vedleggskommentar" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" -msgstr "" +msgstr "Opplastet dato" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" -msgstr "" +msgstr "Datoen som filen ble lastet opp" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" -msgstr "" +msgstr "Filstørrelse" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" -msgstr "" +msgstr "Filstørrelse i byte" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" -msgstr "" +msgstr "Ugyldig modelltype spesifisert for vedlegg" #: common/notifications.py:314 #, python-brace-format @@ -3869,7 +3941,7 @@ msgstr "{verbose_name} kansellert" msgid "A order that is assigned to you was canceled" msgstr "En ordre som er tildelt til deg ble kansellert" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Artikler mottatt" @@ -3951,33 +4023,33 @@ msgstr "Filnavn" #: common/serializers.py:536 report/api.py:100 report/serializers.py:53 msgid "Model Type" -msgstr "" +msgstr "Modelltype" #: common/serializers.py:563 msgid "User does not have permission to create or edit attachments for this model" -msgstr "" +msgstr "Brukeren har ikke tillatelse tillatelse å opprette eller endre vedlegg for denne modellen" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" -msgstr "" +msgstr "Ingen modelltype angitt for vedlegg" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" -msgstr "" +msgstr "Ugyldig modelltype for vedlegg" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" -msgstr "" +msgstr "Minste antall plasser kan ikke være mer enn største antall plasser" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" -msgstr "" +msgstr "Største antall plasser kan ikke være mindre enn minste antall plasser" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Et tomt domene er ikke tillatt." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ugyldig domenenavn: {domain}" @@ -4022,23 +4094,23 @@ msgstr "Forrige trinn" #: company/api.py:141 msgid "Part is Active" -msgstr "" +msgstr "Delen er aktiv" #: company/api.py:145 msgid "Manufacturer is Active" -msgstr "" +msgstr "Leverandør er aktiv" #: company/api.py:278 msgid "Supplier Part is Active" -msgstr "" +msgstr "Leverandørdel er aktiv" #: company/api.py:282 msgid "Internal Part is Active" -msgstr "" +msgstr "Intern del er aktiv" #: company/api.py:286 msgid "Supplier is Active" -msgstr "" +msgstr "Leverandør er aktiv" #: company/models.py:100 company/models.py:371 #: company/templates/company/company_base.html:8 @@ -4084,9 +4156,9 @@ msgstr "Kontakt e-post" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakt" @@ -4100,11 +4172,11 @@ msgstr "Link til ekstern bedriftsinformasjon" #: company/models.py:163 msgid "Is this company active?" -msgstr "" +msgstr "Er firmaet aktivt?" #: company/models.py:168 msgid "Is customer" -msgstr "" +msgstr "Er kunde" #: company/models.py:169 msgid "Do you sell items to this company?" @@ -4112,7 +4184,7 @@ msgstr "Selger du varer til dette firmaet?" #: company/models.py:174 msgid "Is supplier" -msgstr "" +msgstr "Er leverandør" #: company/models.py:175 msgid "Do you purchase items from this company?" @@ -4120,7 +4192,7 @@ msgstr "Kjøper du varer fra dette firmaet?" #: company/models.py:180 msgid "Is manufacturer" -msgstr "" +msgstr "Er produsent" #: company/models.py:181 msgid "Does this company manufacture parts?" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adresse" @@ -4228,225 +4300,214 @@ msgstr "Fraktnotater for internt bruk" msgid "Link to address information (external)" msgstr "Lenke til adresseinformasjon (ekstern)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Produsentdeler" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisdel" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Velg del" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Produsent" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Velg produsent" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL for ekstern produsentdel-lenke" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Produsentens delbeskrivelse" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" -msgstr "" +msgstr "Produsentdel parameter" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parameternavn" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Verdi" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parameterverdi" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Enheter" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Parameterenheter" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Leverandørdel" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Pakkeenhetene må være komptible med delens basisenhet" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Pakkeenhet må være mer enn null" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverandør" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Velg leverandør" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Leverandørens lagerbeholdningsenhet" -#: company/models.py:792 -msgid "Is this supplier part active?" -msgstr "" - #: company/models.py:802 +msgid "Is this supplier part active?" +msgstr "Er denne leverandørdelen aktiv?" + +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Velg produsentdel" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL for ekstern leverandørdel-lenke" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Notat" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Emballasje" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Delemballasje" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Pakkeantall" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totalt antall i en enkelt pakke. La være tom for enkeltenheter." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "flere" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Bestill flere" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Antall tilgjengelig fra leverandør" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Tilgjengelighet oppdatert" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Dato for siste oppdatering av tilgjengelighetsdata" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" -msgstr "" +msgstr "Leverandørens prisbrudd" #: company/serializers.py:174 msgid "Default currency used for this supplier" @@ -4454,9 +4515,9 @@ msgstr "Standardvaluta brukt for denne leverandøren" #: company/serializers.py:210 msgid "Company Name" -msgstr "" +msgstr "Bedriftsnavn" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "På lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Inaktiv" @@ -4526,17 +4587,17 @@ msgstr "Last ned bilde fra URL" msgid "Delete image" msgstr "Slett bilde" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kunde" @@ -4551,11 +4612,11 @@ msgstr "Telefon" #: company/templates/company/company_base.html:211 #: part/templates/part/part_base.html:536 msgid "Remove Image" -msgstr "" +msgstr "Fjern Bilde" #: company/templates/company/company_base.html:212 msgid "Remove associated image from this company" -msgstr "" +msgstr "Fjern tilknyttet bilde fra dette firmaet" #: company/templates/company/company_base.html:214 #: part/templates/part/part_base.html:539 @@ -4567,12 +4628,12 @@ msgstr "Fjern" #: company/templates/company/company_base.html:243 #: part/templates/part/part_base.html:568 msgid "Upload Image" -msgstr "" +msgstr "Last opp bilde" #: company/templates/company/company_base.html:258 #: part/templates/part/part_base.html:622 msgid "Download Image" -msgstr "" +msgstr "Last ned Bilde" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 @@ -4586,7 +4647,7 @@ msgstr "Opprett ny leverandørdel" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Ny leverandørdel" @@ -4599,7 +4660,7 @@ msgstr "Produsentdeler" msgid "Create new manufacturer part" msgstr "Opprett ny produsentdel" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Ny Produsentdel" @@ -4613,7 +4674,7 @@ msgstr "Leverandørs lagerbeholdning" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Ny innkjøpsordre" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Produsenter" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Bestill del" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Slett produsentdel" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Intern del" @@ -4734,7 +4795,7 @@ msgstr "Ingen produsentinformasjon tilgjengelig" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Leverandører" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametere" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4756,12 +4817,12 @@ msgstr "Nytt Parameter" #: company/templates/company/manufacturer_part.html:177 msgid "Manufacturer Part Notes" -msgstr "" +msgstr "Notater for leverandørdel" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" -msgstr "" +msgstr "Legg til Parameter" #: company/templates/company/sidebar.html:6 msgid "Manufactured Parts" @@ -4791,7 +4852,7 @@ msgstr "Handlinger for leverandørdeler" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Bestill del" @@ -4824,12 +4885,12 @@ msgstr "Slett Leverandørdel" msgid "No supplier information available" msgstr "Ingen leverandørinformasjon tilgjengelig" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "SKU-kode" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Leverandørs lagerbeholdning" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Opprett ny lagervare" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Ny Lagervare" @@ -4864,7 +4925,7 @@ msgstr "Legg til Prisbrudd" #: company/templates/company/supplier_part.html:270 msgid "Supplier Part Notes" -msgstr "" +msgstr "Notater for leverandørdeler" #: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Lagervarer" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Gyldig" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Ukjent" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Total pris" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Ordrestatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "Ingen samsvarende innkjøpsordre funnet" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Ordre" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Returordre" @@ -5286,7 +5347,7 @@ msgstr "Ordrebeskrivelse (valgfritt)" msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Lenke til ekstern side" @@ -5310,365 +5371,369 @@ msgstr "Kontaktpunkt for denne ordren" msgid "Company address for this order" msgstr "Selskapsadresse for denne ordren" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Status for innkjøpsordre" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Firma som varene blir bestilt fra" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Leverandørreferanse" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Leverandørens ordrereferanse" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "mottatt av" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Sendt dato" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Dato bestillingen ble sendt" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Dato ordre ble fullført" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Forsendelsesdato" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "sendt av" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Antall" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Linjereferanse" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Linjenotater" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Kontekst" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "slettet" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Mottatt" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Hvor vil innkjøper at artikkelen skal lagres?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuell del kan ikke tildeles salgsordre" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Sendt" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Linje" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Artikkel" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "Kun serialiserte artikler kan tilordnes en Returordre" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "Datoen denne returartikkelen ble mottatt" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Utfall" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Ordren kan ikke kanselleres" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Tillat ordre å lukkes med ufullstendige linjeelementer" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "Ordren har ufullstendige linjeelementer" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Ordren er ikke åpen" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Innkjøpsvaluta" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Internt delnummer" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Leverandørdel må angis" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Innkjøpsordre må angis" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Leverandør må samsvare med innkjøpsordre" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Innkjøpsordre må samsvare med leverandør" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Ordrelinje" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Linjeelementet samsvarer ikke med innkjøpsordre" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Velg lagerplassering for mottatte enheter" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Angi serienummer for innkommende lagervarer" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Strekkode" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Skannet strekkode" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Strekkode allerede i bruk" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Heltallsverdi må angis for sporbare deler" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Linjeelementer må være oppgitt" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "Målplassering må angis" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Angitte strekkodeverdier må være unike" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Valuta for salgspris" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Ingen forsendelsesopplysninger oppgitt" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "Linjeelement er ikke knyttet til denne ordren" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "Mengden må være positiv" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Skriv inn serienummer for å tildele" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "Forsendelsen er allerede sendt" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "Forsendelsen er ikke knyttet til denne ordren" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Ingen treff funnet for følgende serienummer" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "Følgende serienummer er allerede tildelt" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "Returordrelinje" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "Linjeelementet samsvarer ikke med returordre" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "Linjeelementet er allerede mottatt" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "Artikler kan bare mottas mot ordrer som pågår" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "Valuta for linje" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Tapt" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Returnert" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Pågående" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Retur" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Reparasjon" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Erstatt" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Refusjon" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Avvis" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Rediger ordre" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Kanseller ordre" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Dupliser ordre" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Kanseller ordre" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "Send ordre" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Merk ordren som fullført" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Fullfør ordre" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "Miniatyrbilde for leverandør" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Ordrereferanse" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Ordrebeskrivelse" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Ingen leverandørinformasjon tilgjengelig" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Fullførte elementer" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Ufullstendig" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Utstedt" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Total kostnad" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Total kostnad kunne ikke beregnes" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "Duplikatvalg" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Fjern rad" @@ -6162,31 +6233,31 @@ msgstr "Skriv ut returordrerapport" msgid "Print packing list" msgstr "Skriv ut pakkeliste" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Kundereferanse" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Total kostnad" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "Ordredetaljer" msgid "Print sales order report" msgstr "Skriv ut salgsordrerapport" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Send artikler" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Fullfør Salgsordre" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Salgsordren er ikke fullstendig tildelt" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Fullførte forsendelser" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Ventende forsendelser" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Handlinger" @@ -6272,21 +6343,21 @@ msgstr "Oppdaterte {part} enhetspris to {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revisjon" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Nøkkelord" @@ -6298,7 +6369,7 @@ msgstr "Del-bilde" msgid "Category ID" msgstr "Kategori-ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategorinavn" @@ -6311,11 +6382,11 @@ msgstr "Standard plasserings-ID" msgid "Default Supplier ID" msgstr "Standard leverandør-ID" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variant av" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimal lagerbeholdning" @@ -6323,19 +6394,19 @@ msgstr "Minimal lagerbeholdning" msgid "Used In" msgstr "Brukt i" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Produseres" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Minimal kostnad" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Maksimal kostnad" @@ -6347,19 +6418,19 @@ msgstr "Overordnet ID" msgid "Parent Name" msgstr "Overordnet navn" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Sti til kategori" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Deler" @@ -6376,126 +6447,130 @@ msgstr "BOM artikkel-ID" msgid "Parent IPN" msgstr "Overodnet IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minstepris" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Makspris" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Innkommende innkjøpsordre" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Utgående salgsordre" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Lagervarer produsert av en produksjonsordre" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Lagervarer påkrevd for produksjonsordre" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "Godkjenn hele Stykklisten" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Dette alternativet må være valgt" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategori" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Standard plassering" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Total lagerbeholdning" @@ -6504,784 +6579,785 @@ msgstr "Total lagerbeholdning" msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Delkategorier" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standardplassering for deler i denne kategorien" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Deler kan ikke tilordnes direkte til en strukturell kategori, men kan tilordnes til underkategorier." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Standard nøkkelord" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Standard nøkkelord for deler i denne kategorien" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Du kan ikke gjøre denne delkategorien strukturell fordi noen deler allerede er tilordnet den!" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Ugyldig valg for overordnet del" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Delen '{self}' kan ikke brukes i BOM for '{parent}' (rekursiv)" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Delen '{parent}' er brukt i BOM for '{self}' (rekursiv)" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN må samsvare med regex-mønsteret {pattern}" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Lagervare med dette serienummeret eksisterer allerede" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Delnavn" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Er Mal" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Er delen en maldel?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Er delen en variant av en annen del?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "Delbeskrivelse (valgfritt)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Delkategori" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Hvor er denne artikkelen vanligvis lagret?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standard leverandør" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Standard leverandørdel" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Standard utløp" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Måleenheter for denne delen" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Kan denne delen bygges fra andre deler?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Kan denne delen brukes til å bygge andre deler?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Har denne delen sporing av unike artikler?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Kan denne delen selges til kunder?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Er denne delen aktiv?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Kontrollsum for BOM" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "Lagret BOM-kontrollsum" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "Stykkliste sjekket av" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "Stykkliste sjekket dato" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Opprettingsbruker" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "Eier ansvarlig for denne delen" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "Overstyr minstekostnad" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "Overstyr maksimal kostnad" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Antall" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Dato" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Rapport" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "Valg må være unike" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Testmaler kan bare bli opprettet for sporbare deler" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktivert" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Valg" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "Sjekkboksparameter kan ikke ha enheter" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "Sjekkboksparameter kan ikke ha valg" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Sjekkboks" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en sjekkboks?" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Nivå" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Godkjent" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" @@ -7289,338 +7365,358 @@ msgstr "Duplikatforhold eksisterer allerede" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Innkjøpsvaluta for lagervaren" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Ingen deler valgt" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Velg kategori" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Original Del" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Velg original del å duplisere" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopier Bilde" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopier Stykkliste" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Kopier stykkliste fra original del" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Kopier parametere" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Kopier parameterdata fra originaldel" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Kopier notater" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Kopier notater fra originaldel" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Innledende lagerplassering" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Angi initiell lagerplasering for denne delen" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Velg leverandør (eller la stå tom for å hoppe over)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Velg produsent (eller la stå tom for å hoppe over)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Produsentens delenummer" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Valgt firma er ikke en gyldig leverandør" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Valgt firma er ikke en gyldig produsent" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Produsentdel som matcher dette MPN-et, finnes allerede" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Dupliser del" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Kopier innledende data fra en annen del" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Lag en del med innledende lagermengde" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Leverandøropplysninger" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Legg til innledende leverandørinformasjon for denne delen" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Kopier kategoriparametre" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Kopier parametermaler fra valgt delkategori" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Eksisterende bilde" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Filnavn for et eksisterende del-bilde" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Bildefilen finnes ikke" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Ekskluder ekstern lagerbeholdning" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Ekskluder lagervarer i eksterne lokasjoner" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Generer rapport" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Genererer rapport som inneholder beregnede lagerdata" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Oppdater deler" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Overstyr beregnet verdi for minimumspris" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Valuta for minstepris" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Overstyr beregnet verdi for maksimal pris" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Valuta for maksimal pris" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Oppdater" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Oppdater priser for denne delen" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Minsteprisen kan ikke være større enn maksimal pris" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Kan Produsere" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Nullstill eksisterende BOM" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Fjern eksisterende BOM-artikler før opplastning" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Ingen del-kolonne angitt" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Flere samsvarende deler funnet" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Ingen samsvarende del funnet" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Delen er ikke betegnet som en komponent" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Antall ikke oppgitt" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Ugyldig antall" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Minst en BOM-artikkel kreves" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Totalt Antall" @@ -7666,65 +7762,65 @@ msgstr "Denne BOMen ble sist sjekket av %(checker)s den %(check_date)s" msgid "This BOM has not been validated." msgstr "Denne BOMen er ikke godkjent." -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Utfør lagertelling for denne delkategorien" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Du abonnerer på varsler for denne kategorien" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Abonner på varsler for denne kategorien" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Kategorihandlinger" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Rediger kategori" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Rediger Kategori" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Slett kategori" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Slett Kategori" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Toppnivå delkategori" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Deler (inkludert underkategorier)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Opprett ny del" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Ny Del" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Delparametere" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Opprett ny delkategori" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Ny Kategori" @@ -7772,7 +7868,7 @@ msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Lagertelling" @@ -7784,101 +7880,105 @@ msgstr "Deltestmaler" msgid "Add Test Template" msgstr "Legg til Testmal" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Salgsordretildelinger" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Delnotater" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Delvarianter" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Opprett ny variant" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Ny Variant" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Legg til ny parameter" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Relaterte Deler" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Legg til relatert" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Stykkliste (BOM)" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Eksporthandlinger" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Eksporter BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Skriv ut BOM-rapport" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "BOM-handlinger" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Last opp BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Godkjenn BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Legg til BOM-artikkel" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Sammenstillinger" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Del-produksjoner" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Produksjonsordre-tildelinger" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Deleleverandører" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Deleprodusenter" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "Last ned importmal for del" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Velg filformat" @@ -7937,7 +8037,7 @@ msgstr "Abonner på varsler for denne delen" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Skriv ut etikett" @@ -7947,7 +8047,7 @@ msgstr "Vis prisinformasjon" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Lagerhandlinger" @@ -7959,7 +8059,7 @@ msgstr "Tell delbeholdning" msgid "Transfer part stock" msgstr "Overfør delbeholdning" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Delhandlinger" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Minimalt lagerbeholdningsnivå" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Varianter" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Lagerbeholdning" @@ -8158,7 +8258,7 @@ msgstr "Overstyr delprising" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Rediger" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Sist oppdatert" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Ingen lagerbeholdning" @@ -8332,100 +8432,108 @@ msgstr "Ingen handling spesifisert" msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Ingen samsvarende del-data funnet" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Finner ingen matchende leverandørdeler" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Flere samsvarende leverandørdeler funnet" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Fant leverandørdel" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Artikkelen er allerede mottatt" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Ingen treff for leverandørstrekkode" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "Flere samsvarende elementer funnet" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "Ingen samsvarende element funnet" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Strekkoden samsvarer ikke med eksisterende lagervare" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Lagervare samsvarer ikke med linjeelement" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Utilstrekkelig lagerbeholdning" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Lagervaren er tildelt en salgsordre" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Ikke nok informasjon" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Fant flere leverandørdeler for strekkoden" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Fant flere innkjøpsordrer som samsvarer med '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Ingen samsvarende innkjøpsordre for '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Innkjøpsordre stemmer ikke med leverandør" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Fant ikke ventende artikkel for leverandørdel" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Mer informasjon nødvendig for å motta artikkelen" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Mottok ordreartikkelen" @@ -8433,51 +8541,59 @@ msgstr "Mottok ordreartikkelen" msgid "Scanned barcode data" msgstr "Skannet strekkodedata" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "Innkjøpsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Innkjøpsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Innkjøpsordre å motta artikler mot" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Innkjøpsordren har ikke blitt sendt" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Plassering å motta deler til" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Kan ikke velge en strukturell plassering" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "Salgsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "Salgsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "Salgsordrelinje å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "Salgsordre-forsendelse å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "Forsendelsen er allerede levert" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Antall å tildele" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "InvenTree-strekkoder" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Gir innebygd støtte for strekkoder" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "Gir innebygd støtte for strekkoder" msgid "InvenTree contributors" msgstr "InvenTree-bidragsytere" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree-varsler" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "Er utvidelsen aktiv" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Installert" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Ingen gyldige objekter angitt for mal" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "Leverandør ble slettet" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Enhetspris" @@ -9173,8 +9313,10 @@ msgstr "Ekstra linjeelementer" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "Testresultater" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Resultat" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "Ingen resultat" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Installerte artikler" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Serienummer" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Asset-filen eksisterer ikke" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Bildefil ikke funnet" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "part_image-taggen krever en Part-instans" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "company_image-taggen krever en Company-instans" @@ -9246,8 +9388,8 @@ msgstr "company_image-taggen krever en Company-instans" msgid "Location ID" msgstr "Plasserings-ID" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Plasserings-sti" @@ -9279,7 +9421,7 @@ msgstr "Leverandørnavn" msgid "Customer ID" msgstr "Kunde-ID" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installert i" @@ -9304,9 +9446,9 @@ msgstr "Gjennomgang kreves" msgid "Delete on Deplete" msgstr "Slett når oppbrukt" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Utløpsdato" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "Utløpsdato før" msgid "Expiry date after" msgstr "Utløpsdato etter" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Lagerplasseringstype" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Lagerplasseringstyper" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Lagerplassering" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Eier" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Velg eier" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Ekstern" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Dette er en ekstern lagerplassering" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Plasseringstype" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Lagerplasseringstype for denne plasseringen" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "De kan ikke gjøre denne plasseringen strukturell, da noen lagervarer allerede er plassert i den!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Lagervare kan ikke opprettes for virtuelle deler" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Deltype ('{self.supplier_part.part}') må være {self.part}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Antall må være 1 for produkt med et serienummer" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Serienummeret kan ikke angis hvis antall er større enn 1" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Elementet kan ikke tilhøre seg selv" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Elementet må ha en produksjonsrefereanse om is_building=True" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Produksjonsreferanse peker ikke til samme del-objekt" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Overordnet lagervare" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Basisdel" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Er denne artikkelen montert i en annen artikkel?" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Lagerantall" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Kildeproduksjon" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Produksjon for denne lagervaren" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Brukt av" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Produksjonsordren som brukte denne lagervaren" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Kildeinnkjøpsordre" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Innkjøpsordre for denne lagervaren" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Tildelt Salgsordre" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Slett når oppbrukt" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Slett lagervaren når beholdningen er oppbrukt" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Innkjøpspris per enhet på kjøpstidspunktet" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "Konvertert til del" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Delen er ikke angitt som sporbar" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Antall må være heltall" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Serienumre må være en liste over tall" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Antallet stemmer ikke overens med serienumrene" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Lagervare har blitt tildelt en salgsordre" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Lagervare er montert i en annen artikkel" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Lagervare inneholder andre artikler" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "Duplisert lagervare" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Lagervarer må referere til samme del" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Lagervarer må referere til samme leverandørdel" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Bruk pakningsstørrelse når du legger til: antall definert er antall pakker" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Utløpt" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Underordnede artikler" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "Innkjøpspris for denne lagervaren, per enhet eller forpakning" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Angi antall lagervarer som skal serialiseres" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Angi serienummer for nye artikler" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "Til Lagerplassering" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Valgfritt notatfelt" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Serienummer kan ikke tilordnes denne delen" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Velg lagervare å montere" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "Antall å installere" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "Angi antallet elementer som skal installeres" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "Legg til transaksjonsnotat (valgfritt)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "Antall å installere må være minst 1" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Lagervaren er utilgjengelig" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "Valgt del er ikke i stykklisten" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "Antall å installere må ikke overskride tilgjengelig antall" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "Lagerplassering for den avinstallerte artikkelen" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Velg del å konvertere lagervare til" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "Valgt del er ikke et gyldig alternativ for konvertering" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Kan ikke konvertere lagerprodukt med tildelt leverandørdel" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "Lagerplassering for returnert artikkel" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "Velg lagervarer for å endre status" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "Ingen lagervarer valgt" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Underplasseringer" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "Delen må være salgbar" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "Artikkelen er tildelt en salgsordre" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Artikkelen er tildelt en produksjonsordre" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Kunde å tilordne lagervarer" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "Valgt firma er ikke en kunde" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Notater om lagersammenslåing" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "Tillat forskjellige leverandører" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "Tillat forskjellig status" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Minst to lagervarer må oppgis" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "Lagervare primærnøkkel verdi" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "Lagervare statuskode" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Lager transaksjonsnotater" @@ -9971,7 +10117,7 @@ msgstr "I Karantene" msgid "Legacy stock tracking entry" msgstr "Gammel lagervare sporingsoppføring" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagevare opprettet" @@ -10027,7 +10173,7 @@ msgstr "Skill ut fra overordnet artikkel" msgid "Split child item" msgstr "Skill ut fra underartikkel" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sammenslåtte lagervarer" @@ -10047,7 +10193,7 @@ msgstr "Produksjonsartikkel fullført" msgid "Build order output rejected" msgstr "Produksjonsartikkel avvist" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Brukt av produksjonsordre" @@ -10108,7 +10254,7 @@ msgstr "Notater for lagervare" msgid "Installed Stock Items" msgstr "Installerte lagervarer" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Installer lagervare" @@ -10116,7 +10262,7 @@ msgstr "Installer lagervare" msgid "Delete all test results for this stock item" msgstr "Slett alle testresultater for denne lagervaren" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Skann til plassering" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Utskriftshandlinger" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "Lagerjusteringshandlinger" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Tell beholdning" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Legg til lagerbeholdning" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Fjern lagerbeholdning" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Serialiser lager" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Overfør lagerbeholdning" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Tilordne til kunde" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "Slett lagervare" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Produksjon" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Du er ikke i eierlisten til dette elementet. Denne lagervaren kan ikke redigeres." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Kun lesetilgang" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Gå til neste serienummer" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Ingen plassering satt" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "Ingen lagertelling utført" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "Denne handlingen er vanskelig å omgjøre" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "Opprett serialiserte artikler for denne lagervaren." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Velg antall å serialisere, og unike serienummer." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Utfør lagertelling for denne lagerplasseringen" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Finn lagerplassering" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Skann lagervarer til denne plasseringen" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Skann inn Lagervarer" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Skann lagerbeholder til denne plasseringen" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Skann inn beholder" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "Skriv ut plasseringsrapport" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Plasseringshandlinger" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Rediger plassering" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Slett plassering" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Toppnivå-lagerplassering" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Plasseringens Eier" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Du er ikke i listen over eiere av denne plasseringen. Denne lagerplasseringen kan ikke redigeres." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Opprett ny lagerplassering" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Ny plassering" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "Installasjonssti" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Innebygd" @@ -10796,7 +10942,7 @@ msgstr "Dette er en innebygd utvidelse som ikke kan deaktiveres" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Eksempel" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Slett" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Ny plasseringstype" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Send feilrapport" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "kopier til utklippstavle" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "Følgende deler har for lav lagerbeholdning" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Antall som kreves" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "Klikk på følgende lenke for å se denne delen" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimum antall" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "Skjemafeil eksisterer" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "Varsler lastes inn her" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Legg til" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "E-Post-Innstillinger" msgid "Email settings not configured" msgstr "E-postinnstillinger ikke konfigurert" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index ac0b4fcace..e065c31954 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -56,29 +56,30 @@ msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Uwagi" @@ -91,118 +92,122 @@ msgstr "Wartość '{name}' nie pojawia się w formacie wzoru" msgid "Provided value does not match required pattern: " msgstr "Podana wartość nie pasuje do wymaganego wzoru: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Wprowadź hasło" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Wprowadź nowe hasło" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potwierdź hasło" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potwierdź nowe hasło" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Stare hasło" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Adres email (ponownie)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potwierdzenie adresu email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Należy ponownie wpisać ten sam adres e-mail." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Rejestracja jest wyłączona." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Podwójny numer seryjny" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nieprawidłowy zakres grupy: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Zakres grupy {group} przekracza dozwoloną ilość ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nieprawidłowa kolejność grup: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Liczba unikalnych numerów seryjnych ({len(serials)}) musi odpowiadać ilości ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Usuń znaczniki HTML z tej wartości" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Logowanie do aplikacji" msgid "Email" msgstr "Adres E-Mail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Błąd podczas walidacji wtyczki" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadane muszą być obiektem typu dict w Python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Wtyczka Metadane" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadanych JSON, do użycia przez wtyczki zewnętrzne" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nieprawidłowo sformatowany wzór" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Określono nieznany format klucza" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Brak wymaganego formatu klucza" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Pole odniesienia nie może być puste" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Odniesienie musi być zgodne z wymaganym wzorem" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Numer odniesienia jest zbyt duży" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Ścieżka" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Notatki Markdown (opcjonalne)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dane kodu kreskowego" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dane kodu kreskowego stron trzecich" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Hasz kodu kreskowego" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktywny" @@ -662,7 +667,7 @@ msgstr "Adres URL zdalnego pliku obrazu" msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Sprawdzenie robotnika w tle nie powiodło się" @@ -726,59 +731,59 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Materiał eksploatacyjny" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Opcjonalne" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Śledzony" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Dostępne" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Zlecenie Budowy" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Zlecenie Budowy" msgid "Build Orders" msgstr "Zlecenia budowy" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Nieprawidłowy wybór kompilacji nadrzędnej" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Odpowiedzialny użytkownik lub grupa muszą być określone" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Nie można zmienić elementu kompletacji" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referencja" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Krótki opis produkcji (opcjonalny)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Budowa nadrzędna" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Komponent" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Wybierz część do budowy" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Odwołanie do zamówienia sprzedaży" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokalizacja źródła" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Lokalizacja docelowa" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Ilość do stworzenia" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Ilość przedmiotów do zbudowania" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Ukończone elementy" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Ilość produktów magazynowych które zostały ukończone" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Status budowania" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Kod partii" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Data utworzenia" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Docelowy termin zakończenia" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Data zakończenia" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Wydany przez" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odpowiedzialny" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Priorytet budowy" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Priorytet tego zamówienia produkcji" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Priorytet tego zamówienia produkcji" msgid "Project Code" msgstr "Kod projektu" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Kod projektu dla tego zlecenia produkcji" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Kolejność kompilacji {build} została zakończona" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Kolejność kompilacji została zakończona" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Budowanie wyjścia jest już ukończone" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Ilość nie może być większa niż ilość wyjściowa" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Wyjście budowy {serial} nie przeszło wszystkich testów" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Zbuduj obiekt" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Zbuduj obiekt" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Ilość" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Wymagana ilość dla zlecenia produkcji" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Pozycja magazynowa jest nadmiernie przydzielona" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Ilość musi wynosić 1 dla serializowanych zasobów" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Ilość zapasów do przydzielenia do produkcji" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Nazwa komponentu" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Numer seryjny" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Lokalizacja" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Automatycznie przydzielaj numery seryjne" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatycznie przydzielaj wymagane elementy z pasującymi numerami seryjnymi" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Poniższe numery seryjne już istnieją lub są nieprawidłowe" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Odrzuć przydziały" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Zaakceptuj niekompletną alokację" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Usuń produkcje, które nie zostały zakończone" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Niedozwolone" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Zaakceptuj jako zużyte przez zlecenie produkcji" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Nadmierny przydział zasobów" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Zaakceptuj nieprzydzielone" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Zaakceptuj, że przedmioty magazynowe nie zostały w pełni przypisane do tego zlecenia budowy" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Wymagany stan nie został w pełni przypisany" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Akceptuj niekompletne" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Wyklucz lokalizację" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Zastępczy magazyn" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Przedmiot opcjonalny" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Numer producenta komponentu" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Opakowanie" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID komponentu" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "IPN komponentu" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Numer Seryjny" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Numer Seryjny" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Możliwość śledzenia" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Element BOM" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "W Zamówieniu" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "W produkcji" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Dostępna ilość" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "W toku" @@ -1647,16 +1677,21 @@ msgstr "W toku" msgid "Production" msgstr "Produkcja" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Anulowano" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Zakończono" @@ -1684,8 +1719,8 @@ msgstr "Miniaturka przedmiotu" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" @@ -1696,7 +1731,7 @@ msgstr "Akcje kodów kreskowych" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Pokaż Kod QR" @@ -1707,7 +1742,7 @@ msgstr "Pokaż Kod QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Odłącz Kod Kreskowy" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Połącz Kod Kreskowy" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Edytuj Budowę" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Anuluj Budowę" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Anuluj Budowę" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Data docelowa" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Zaległe" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Zamówienie zakupu" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Dodane przez" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Priorytet" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Przeznaczenie" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Partia" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Utworzony" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Zakończone" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Załączniki" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Nowe zlecenie budowy" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Plik" msgid "Select {name} file to upload" msgstr "Wybierz plik {name} do przesłania" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Zaktualizowany" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Data ostatniej aktualizacji" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unikalny kod projektu" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Opis projektu" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Wybrana wartość nie jest poprawną opcją" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Wartość musi być wartością binarną" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Wartość musi być liczbą całkowitą" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Ciąg musi być unikatowy" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Brak grupy" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Wymagane ponowne uruchomienie" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Zmieniono ustawienie, które wymaga restartu serwera" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Oczekujące migracje" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Liczba oczekujących migracji bazy danych" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Nazwa instancji serwera" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Użyj nazwy instancji" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Nazwa firmy" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Wewnętrzna nazwa firmy" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Bazowy URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Domyślna waluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Interwał aktualizacji waluty" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dni" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Wtyczka aktualizacji waluty" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Pobierz z adresu URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Limit rozmiaru pobierania" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Ścisła weryfikacja adresu URL" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Wymagaj specyfikacji schematu podczas sprawdzania poprawności adresów URL" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Wymagaj potwierdzenia" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Wymagaj wyraźnego potwierdzenia dla określonych działań." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Głębokość drzewa" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Domyślna głębokość drzewa dla widoku drzewa. Głębsze poziomy mogą być leniwe, gdy są potrzebne." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Częstotliwość sprawdzania aktualizacji" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączyć)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Automatyczna kopia zapasowa" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Włącz automatyczną kopię zapasową bazy danych i plików multimedialnych" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Interwał automatycznego tworzenia kopii zapasowych" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Określ liczbę dni między zdarzeniami automatycznej kopii zapasowej" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Interwał usuwania zadań" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Szablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Komponent" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Pokaż powiązane części" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Użyj cennika dostawcy" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Nadpisanie historii zakupów" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Ceny wewnętrzne" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Automatycznie wypełniaj zlecenia zakupu" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "Automatycznie oznacz zlecenia jako zakończone po odebraniu wszystkich pozycji" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Wyszukaj zlecenia zakupu" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Wyklucz nieaktywne zlecenia zakupu" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Użytkownik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Cena" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Sekret" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Zawartość" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Łącze" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Obraz" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Załącznik" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Brak pliku" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentarz" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Pusta domena nie jest dozwolona." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Niepoprawna nazwa domeny: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Kontaktowy adres e-mail" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakt" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adres" @@ -4228,223 +4300,212 @@ msgstr "Notatki wysyłkowe do użytku wewnętrznego" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Komponent producenta" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Wybierz część" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Producent" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Nazwa parametru" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Wartość" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Wartość parametru" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Jednostki" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Jednostki parametru" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Uwaga" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Opakowanie" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Ilość w opakowaniu" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Zamów wiele" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Dostępność zaktualizowana" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Domyślna waluta używana dla tego dostawcy" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "Na stanie" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Nieaktywny" @@ -4526,17 +4587,17 @@ msgstr "Pobierz obraz z adresu URL" msgid "Delete image" msgstr "Usuń obraz" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Klient" @@ -4586,7 +4647,7 @@ msgstr "Utwórz nowego dostawcę części" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Nowy dostawca części" @@ -4599,7 +4660,7 @@ msgstr "Części producenta" msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Nowa część producenta" @@ -4613,7 +4674,7 @@ msgstr "Zapasy dostawcy" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Nowe zamówienie zakupu" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Producenci" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Zamów komponent" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Usuń komponent producenta" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Komponent wewnętrzny" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Dostawcy" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametry" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Zamów komponent" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Utwórz nowy towar" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Nowy towar" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Towary" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Dane" @@ -5010,7 +5071,7 @@ msgstr "Dane" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Ważny" @@ -5110,7 +5171,7 @@ msgstr "Liczba kopii do wydrukowania dla każdej etykiety" msgid "Connected" msgstr "Połączono" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Nieznany" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Cena całkowita" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Status zamówienia" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Posiada ceny" @@ -5224,41 +5285,41 @@ msgstr "Posiada ceny" msgid "No matching purchase order found" msgstr "Nie znaleziono pasującego zlecenia zakupu" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Zamówienie" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "Zamówienie oczekujące" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Status zamówienia zakupu" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "odebrane przez" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Data wystawienia zamówienia" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Odebrane" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Wysłane" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Linia" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Komponent" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Zamówienie nie może zostać anulowane" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Zlecenie zakupu musi być określone" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Dostawca musi być zgodny ze zleceniem zakupu" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Zlecenie zakupu musi być zgodne z dostawcą" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Pozycja nie pasuje do zlecenia zakupu" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Kod kreskowy" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Zagubiono" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Zwrócone" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "W trakcie" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Zwrot" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Naprawa" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Wymiana" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Zwrot pieniędzy" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Odrzuć" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Edytuj zamówienie" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Anuluj zamówienie" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Anuluj zamówienie" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Oznacz zamówienie jako zakończone" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Kompletne zamówienie" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Numer zamówienia" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Opis zamówienia" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Niekompletny" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Wydany" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "Duplikuj wybrane" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Usuń wiersz" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Całkowity Koszt" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Oczekujące przesyłki" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Akcje" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Wersja" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Słowa kluczowe" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "ID kategorii" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Wariant" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" @@ -6323,19 +6394,19 @@ msgstr "Minimalny stan magazynowy" msgid "Used In" msgstr "Użyte w" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Ścieżka kategorii" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Części" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Nadchodzące zlecenie zakupu" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategoria" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Domyślna lokalizacja" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Kategorie części" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Domyślne słowa kluczowe" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Nieprawidłowy wybór dla części nadrzędnej" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Data" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Aktywne" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Wymagane" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Poziom" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Podkategorie" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopiuj obraz" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Kopiuj parametry" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplikuj część" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Masz włączone powiadomienia dla tej kategorii" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Włącz powiadomienia dla tej kategorii" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Akcje kategorii" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Edytuj kategorię" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Usuń kategorię" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Kategoria najwyższego poziomu" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Części (w tym podkategorie)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Utwórz nową część" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Nowy komponent" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Stwórz nową kategorię komponentów" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Nowa kategoria" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Warianty Części" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Utwórz nowy wariant" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Nowy wariant" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Powiązane części" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Akcje eksportu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Eksportuj BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Drukuj raport BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Wgraj BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Weryfikuj BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Dodaj część do BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Złożenia" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Dostawcy Części" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Producenci części" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Wybierz format pliku" @@ -7937,7 +8037,7 @@ msgstr "Włącz powiadomienia dla tej części" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Drukuj etykietę" @@ -7947,7 +8047,7 @@ msgstr "Pokaż informacje o cenach" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Akcje magazynowe" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Minimalny poziom stanu magazynowego" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Warianty" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Stan" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Ostatnia aktualizacja" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Brak w magazynie" @@ -8332,100 +8432,108 @@ msgstr "Nie określono działania" msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Kod kreskowy pasuje do istniejącego elementu" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Brak dopasowania dla kodu kreskowego dostawcy" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Znaleziono wiele zleceń zakupu pasujących do '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Nie znaleziono pasującego zlecenia zakupu dla '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Zlecenie zakupu nie pasuje do dostawcy" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Nie znaleziono pozycji oczekującej dla części od dostawcy" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Dalsze informacje wymagane do odbioru pozycji" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Otrzymana pozycja zlecenia zakupu" @@ -8433,51 +8541,59 @@ msgstr "Otrzymana pozycja zlecenia zakupu" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Zlecenie zakupu nie jest oczekujące" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Zlecenie zakupu nie zostało złożone" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "Czy wtyczka jest aktywna" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Zainstalowane" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Brak prawidłowych obiektów do szablonu" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Razem" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Wynik" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Numer seryjny" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "ID lokalizacji" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Ścieżka lokalizacji" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Zainstalowane w" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Data ważności" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Wyszukaj zlecenie zakupu" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Zlecenie zakupu dla tego towaru" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Termin minął" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Elementy podrzędne" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Podlokalizacje" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "Poddany kwarantannie" msgid "Legacy stock tracking entry" msgstr "Starsze śledzenie wpisów stanu magazynowego" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Utworzono element magazynowy" @@ -10027,7 +10173,7 @@ msgstr "Podziel z pozycji nadrzędnej" msgid "Split child item" msgstr "Podziel element podrzędny" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Scalone przedmioty magazynowe" @@ -10047,7 +10193,7 @@ msgstr "Dane wyjściowe kolejności kompilacji ukończone" msgid "Build order output rejected" msgstr "Odrzucono wynik zlecenia produkcji" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Zużyte przez kolejność kompilacji" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Skanuj do lokacji" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Akcje druku" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Przelicz stan magazynowy" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Usuń stan magazynowy" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Przenieś stan magazynowy" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Budowa" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Tylko do odczytu" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Lokacje nie są ustawione" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Edytuj lokację" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Nowa lokalizacja" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "Ścieżka instalacji" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Usuń" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Prześlij raport o błędzie" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "skopiuj do schowka" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Wymagana ilość" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Minimalna ilość" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "Istnieją błędy formularza" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Ustawienia e-maila" msgid "Email settings not configured" msgstr "Ustawienia e-mail nie zostały skonfigurowane" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Tak" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index d6f1651818..97874eb539 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index bb8c3169e9..06739349f8 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:48\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index bb6632c2d2..3db8ebdb2f 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -56,29 +56,30 @@ msgstr "Подробности об ошибке можно найти в пан msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Записи" @@ -91,124 +92,128 @@ msgstr "Значение '{name}' отсутствует в формате ша msgid "Provided value does not match required pattern: " msgstr "Предоставленное значение не соответствует требуемому формату: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Введите пароль" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Введите новый пароль" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Подтвердить пароль" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Подтвердите новый пароль" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Старый пароль" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (еще раз)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Подтверждение адреса электронной почты" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Указанный основной адрес электронной почты неверен." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Регистрация отключена." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Повторяющийся серийный номер" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Недопустимый диапазон группы: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Диапазон группы {group} превышает допустимое количество ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Неверная последовательность групп: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Удалить HTML теги из этого значения" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Сервер ответил неверным кодом статуса" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Сервер ответил неверным значением Контент-Длина" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Загрузка изображения превышен максимальный размер" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Удаленный сервер вернул пустой ответ" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" #: InvenTree/locales.py:18 msgid "Arabic" -msgstr "" +msgstr "Арабский" #: InvenTree/locales.py:19 msgid "Bulgarian" @@ -244,7 +249,7 @@ msgstr "Испанский (Мексика)" #: InvenTree/locales.py:27 msgid "Estonian" -msgstr "" +msgstr "Эстонский" #: InvenTree/locales.py:28 msgid "Farsi / Persian" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Войти в приложение" msgid "Email" msgstr "EMail" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Ошибка запуска проверки плагина" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Метаданные должны быть объектом python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Метаданные плагина" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Поле метаданных JSON для использования внешними плагинами" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Неправильно отформатированный шаблон" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Указан неизвестный ключ формата" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Отсутствует требуемый ключ формата" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Ссылочный идентификатор не может быть пустым" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Номер ссылки слишком большой" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Название" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Путь" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Записи о скидке (необязательно)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Данные штрих-кода" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Данные стороннего штрих-кода" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Хэш штрих-кода" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Должно быть действительным номером" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "Суперпользователь" msgid "Is this user a superuser" msgstr "Это пользователь является суперпользователем" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Активный" @@ -662,7 +667,7 @@ msgstr "ССЫЛКА файла изображения на удаленном msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Проверка фонового работника не удалась" @@ -726,59 +731,59 @@ msgstr "О программе InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Заказ на производство должен быть отменен перед удалением" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Расходники" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Необязательно" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Отслеживается" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Зарезервировано" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Доступно" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Заказ на производство" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Заказ на производство" msgid "Build Orders" msgstr "Заказы на производство" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "Сборка BOM не подтверждена" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "Порядок сборки не может быть создан для неактивной части" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "Порядок сборки не может быть создан для разблокированной части" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Неверный выбор для родительской сборки" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "Должен быть указан ответственный пользователь или группа" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Деталь заказа на производства не может быть изменена" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Ссылка на заказ на производство" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Отсылка" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Краткое описание заказа на производство (необязательно)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Родительский заказ на производство" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Заказ на производство, которому принадлежит этот заказ на производство" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Заказ на производство, которому принад #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Деталь" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Выберите деталь для производства" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Заказ на продажу, которому принадлежит этот заказ на производство" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Место хранения - источник" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Выберите место хранения для этого заказа на производство (оставьте пустым, чтобы взять с любого места на складе)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Место хранения результата" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Выберите место хранения завершенных элементов" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Количество производимых деталей" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Количество складских позиций для производства" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Произведенные детали" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Количество складских позиций, которые были произведены" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Статус заказа на производство" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Код статуса заказа на производство" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Код партии" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Код партии для продукции" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Дата создания" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Целевая дата завершения" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для заказа на производства. Заказ будет просрочен после этой даты." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Дата завершения" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "выполнено" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Создано" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Пользователь, создавший этот заказ на производство" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ответственный" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Пользователь, ответственный за этот заказ на производство" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Ссылка на внешний URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Приоритет производства" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Приоритет этого заказа на производство" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Приоритет этого заказа на производство msgid "Project Code" msgstr "Код проекта" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Код проекта для этого заказа на производство" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "Не удалось выгрузить задачу для распределения на сборку" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Заказ на производство {build} был завершен" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Заказ на производство был завершен" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Продукция не указана" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Продукция уже произведена" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Продукция не совпадает с заказом на производство" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Количество не может быть больше количества продукции" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Сборка {serial} не прошла все необходимые тесты" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "Номер позиции для производства" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Объект производства" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Объект производства" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Количество" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Требуемое количество для заказа на производство" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Складская позиция перераспределена" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Резервируемое количество должно быть больше нуля" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Выбранная складская позиция не соответствует позиции в BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Складская позиция" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Исходная складская позиция" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Количество на складе для производства" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Установить в" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Целевая складская позиция" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Наименование детали" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "Название кода проекта" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Выход Продукции" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Продукция не совпадает с родительским заказом на производство" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Продукция не соответствует детали заказа на производство" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Эта продукция уже помечена как завершенная" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Сырье для этой продукции не полностью зарезервировано" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Введите количество продукции" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Требуется целое количество, так как материал содержит отслеживаемые детали" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Серийные номера" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Введите серийные номера для продукции" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Расположение" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Автоматически выделить серийные номера" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Автоматически зарезервировать необходимые элементы с соответствующими серийными номерами" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "Для отслеживаемых частей должны быть указаны серийные номера" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Следующие серийные номера уже существуют или недействительны" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Необходимо представить список выхода деталей" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Место хранения для списанной продукции" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Отменить резервирование" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Отменить все резервы запасов для списанной продукции" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Причина списания продукции" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Место хранения для завершенной продукции" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Статус" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Разрешить неполное резервирование" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Завершить продукцию, если запасы не были полностью распределены" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Удалить незавершенную продукцию" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Удалить всю незавершенную продукцию" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Запрещено" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Принять как поглощенный этим заказом на производство" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Отменить резерв, до завершения заказа на производство" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Перераспределенные запасы" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Как вы хотите обработать дополнительные складские позиции, назначенные для заказа на производство" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Некоторые складские позиции были перераспределены" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Разрешить не полное резервирование" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Подтвердите, что складские позиции не были полностью зарезервированы для этого заказа на производство" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Необходимые запасы не были полностью зарезервированы" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Разрешить незавершенные производимые детали" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Допустить, что требуемое кол-во продукции не завершено" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Требуемое количество деталей не было произведено" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Заказ на производство имеет незавершенную продукцию" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Позиция для производства" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Выход продукции" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Продукция должна указывать на тот же производство" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Позиция для производства" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Элемент должен быть в наличии" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Продукция должна быть указан для резервирования отслеживаемых частей" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Продукция не может быть указана для резервирования не отслеживаемых частей" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Необходимо указать резервируемые элементы" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Место хранения, где будут зарезервированы детали (оставьте пустым, чтобы забрать их из любого места)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Исключить место хранения" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Исключить складские позиции из этого выбранного места хранения" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Обменный остаток" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Складские позиции в нескольких местах могут использоваться на взаимозаменяемой основе" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Заменить остатки" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Разрешить резервирование замещающих деталей" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Необязательные элементы" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Зарезервировать необязательные позиции BOM для заказа на производство" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "Не удалось запустить задачу автораспределения" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Код производителя" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Имя Места Хранения" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Упаковка" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "Код детали" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "IPN детали" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Серийный номер" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "Зарезервированное количество" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Доступный запас" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Описание детали" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Серийный номер" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "Зарезервированное количество" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Доступный запас" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Отслеживание" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" -msgstr "" +msgstr "Унаследованные" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Позиция BOM" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "Зарезервированные Запасы" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "В заказе" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "В производстве" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Доступный запас" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" -msgstr "" +msgstr "Внешний склад" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Ожидаемый" @@ -1647,16 +1677,21 @@ msgstr "Ожидаемый" msgid "Production" msgstr "Продукция" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Отменено" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Готово" @@ -1684,8 +1719,8 @@ msgstr "Миниатюра детали" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Действия со штрих-кодом" @@ -1696,7 +1731,7 @@ msgstr "Действия со штрих-кодом" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Показать QR-код" @@ -1707,7 +1742,7 @@ msgstr "Показать QR-код" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Отвязать штрих-код" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Привязать штрих-код" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Редактировать производство" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Отменить производство" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Дублировать производство" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Отменить производство" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Удалить производство" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Завершить производство" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Описание производства" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Не указана продукция для этого заказа на производство" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Заказ на производство готов быть отмечен как выполненный" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Заказ на производство не может быть выполнен, так как осталась незавершенная продукция" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Требуемое кол-во не было произведено" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Остатки не были полностью зарезервированы для этого заказа на производство" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Целевая дата" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Производство было просрочено на %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Просрочено" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Завершенная продукция" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Завершенная продукция" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Заказ на продажу" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Создано" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Приоритет" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "Удалить заказ на производство" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "QR-код заказа на производство" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "Привязать штрих-код для заказа на производство" @@ -1875,8 +1930,8 @@ msgstr "Источник запаса" msgid "Stock can be taken from any available location." msgstr "Остатки не могут быть получены из любого доступного места хранения." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Назначение" @@ -1890,21 +1945,21 @@ msgstr "Зарезервированные детали" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Партия" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Создано" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Нет конечной даты" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Завершённые" @@ -1987,7 +2042,11 @@ msgstr "Поглощенные Остатки" msgid "Completed Build Outputs" msgstr "Завершенная продукция" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Завершенная продукция" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Файлы" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Записи производства" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "Резервирование Завершено" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "Все позиции были полностью зарезервированы" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Новый заказ на производство" @@ -2037,15 +2096,20 @@ msgstr "Позиции" msgid "Incomplete Outputs" msgstr "Незавершенная продукция" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "Ссылка" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "Файл" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "У пользователя нет прав на удаление этого вложения" @@ -2103,1654 +2167,1662 @@ msgstr "Файл {name.title()}" msgid "Select {name} file to upload" msgstr "Выберите {name} файл для загрузки" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Обновлено" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Временная метка последнего обновления" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "URL сайта заблокирован настройками" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Уникальный код проекта" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Описание проекта" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Пользователь или группа, ответственные за этот проект" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистрам)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Значения настроек" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Выбранное значение не является допустимым" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Значение должно быть булевым" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Значение должно быть целым числом" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Строка ключа должна быть уникальной" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Нет группы" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Требуется перезапуск" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Настройки были изменены, что требует перезапуска сервера" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Ожидаемые миграции" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Количество ожидаемых миграций базы данных" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Название сервера" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Текстовое описание сервера" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Название инстанса" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Имя сервера в заголовке" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Ограничить отображение `О...`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Показать `О...` только суперпользователям" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Название компании" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Внутреннее название компании" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Базовая ссылка" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Базовая ссылка для экземпляра сервера" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Валюта по умолчанию" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Выберите базовую валюту для расчета цены" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "Поддерживаемые валюты" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "Список поддерживаемых кодов валют" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Интервал обновления курса валют" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Как часто обновлять курс валют (установите \"ноль\", чтобы выключить)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "дней" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Плагин обновления валют" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Модуль обновления валюты" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Скачать по ссылке" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Ограничение размера загрузки" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Максимально допустимый размер загрузки для удалённого изображения" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-Agent, используемый для загрузки из URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "Строгая проверка URL-адреса" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "Требуется спецификация схемы при проверке URL-адресов" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Требуется подтверждение" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Требовать явное подтверждение пользователя для определенного действия." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Глубина дерева" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Интервал проверки обновлений" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Автоматическое резервное копирование" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Интервал резервного копирования" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Укажите количество дней между событиями автоматического резервного копирования" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Интервал удаления задачи" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Результаты фоновых задач будут удалены после указанного количества дней" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Интервал удаления уведомления" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Уведомления пользователя будут удалены после указанного количества дней" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Поддержка штрих-кодов" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Включить поддержку сканера штрих-кодов в веб-интерфейсе" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Задержка сканирования штрих-кода" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Время задержки обработки штрих-кода" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Поддержка веб-камер штрих-кодов" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" +msgstr "Отображать данные штрих-кода в браузере в виде текста" + +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "Плагин генерации штрих-кода" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" -#: common/models.py:1406 +#: common/models.py:1425 msgid "Part Revisions" msgstr "Ревизия детали" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Включить поле ревизии для элемента" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "Разрешить удаление из заказа" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "Разрешить удаление частей, которые используются в заказе" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Регулярное выражение IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Шаблон регулярного выражения для сопоставления IPN детали" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Разрешить повторяющиеся IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Разрешить нескольким элементам использовать один и тот же IPN" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Разрешить редактирование IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Разрешить изменение значения IPN при редактировании детали" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Скопировать данные BOM детали" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Копировать данные BOM по умолчанию при дублировании детали" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Скопировать данные параметров детали" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Копировать данных параметров по умолчанию при дублировании детали" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Скопировать данные тестирования детали" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Копировать данные тестирования по умолчанию при дублировании детали" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Скопировать параметры по шаблону категории" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Копировать параметры по шаблону категории при создании детали" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Шаблон" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Производимая деталь" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "По умолчанию детали могут быть собраны из других компонентов" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Компонент" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "По умолчанию детали могут использоваться в качестве суб-компонентов" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Можно купить" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Можно продавать" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Детали продаются по умолчанию" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Виртуальная" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Детали являются виртуальными по умолчанию" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Показать Импорт в просмотре" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Отобразить мастер импорта на некоторых видах деталей" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Показывать связанные детали" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Отображать связанные детали для элемента" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Начальные данные о запасах" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Разрешить создание начального запаса при добавлении новой детали" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Исходные данные о поставщике" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Разрешить создание исходных данных о поставщике при добавлении новой детали" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Формат отображения детали" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Формат для отображения имени детали" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Значок раздела по умолчанию" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Значок категории по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Принудительное применение единиц измерения параметров" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Если введены единицы, значения параметра должны соответствовать указанным единицам измерения" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Минимальные Цены Десятичные Значки" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Макс. Цены десятичные знаки" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Минимальное количество десятичных знаков при отображении данных о ценах" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Использовать цены поставщика" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Изменить историю покупки" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Ценообразование по историческим заказам на поставку отменяет различия в ценах поставщиков" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Использовать цены из складских позиций" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Возраст цен складских позиций" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Исключить складские позиции старше указанного количества дней с расчёта цен" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Использовать варианты цен" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Включить разницу цен поставщиков при расчетах цен" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Только Активные Варианты" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Использовать только активные запчасти для расчета стоимости варианта" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Интервал пересчета цен" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Количество дней до автоматического обновления цены" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Внутренние цены" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Разрешить внутренние цены для частей" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Переопределение внутренней цены" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "При наличии внутренних цен переопределить ценовой диапазон" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Включить печать этикеток" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Включить печать этикеток из веб-интерфейса" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Изображение меток DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Разрешение DPI при создании файлов изображений для печати этикеток плагинов" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Включить отчеты" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Включить генерацию отчетов" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Генерировать отчеты в режиме отладки (вывод HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "Журнал ошибок отчета" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "Журнал ошибок, которые возникают при создании отчетов" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Размер страницы" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Размер страницы по умолчанию для PDF отчетов" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Включить отчеты" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Включить генерацию отчетов" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Прикрепить отчеты о тестах" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "При печати отчета о тестировании приложить копию тестового отчета к соответствующему складской позиции" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Глобально уникальные серийные номера" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Серийные номера для складских позиций должны быть уникальными глобально" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Автоматическое заполнение серийных номеров" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Автоматическое заполнение серийных номеров в формах" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Удалить исчерпанный запас" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "Определяет поведение по умолчанию, когда складская позиция заканчивается" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Код партии Шаблона" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Шаблон для создания кодов партии по умолчанию для складских позиций" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Срок годности Запасов" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Включить функцию истечения срока годности" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Разрешить продажу просроченных запасов" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Время Залежалости Запасов" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Количество дней перед тем как складская единица будет считаться просроченной" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Использовать просроченные остатки в производстве" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Разрешить использовать просроченные остатки в производстве" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Контроль за собственными запасами" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Разрешить владельцу контролировать расположение складов и номенклатуры" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Значок местоположения по умолчанию" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Значок местоположения склада по умолчанию (пустой означает отсутствие значка)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Показать установленные складские позиции" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Отображать установленные складские позиции в складских таблицах" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "Проверять спецификацию при установке изделий" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "Установленные единица хранения должны присутствовать в спецификации для родительской детали" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "Разрешить передачу товара, отсутствующего на складе" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "Разрешить перемещение товаров, которых нет на складе, между складами" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Паттерн ссылки заказа на производство" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Поле требуемого паттерна для создания ссылки заказа на производство" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "Требуется ответственный владелец" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "Ответственный владелец должен быть назначен для каждого заказа" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Включить заказы на возврат" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Редактировать завершенные возвратные заказы" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Разрешить редактирование возвращенных заказов после их завершения" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Шаблон заказа на возврат товара" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Необходимый шаблон для создания поля «Возврат заказа»" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Редактировать завершенные заказы на покупку" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" -msgstr "" +msgstr "Разрешить регистрацию" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Включить SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Написать дважды" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Пароль дважды" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Разрешенные домены" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Принудительное MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Пользователи должны использовать многофакторную безопасность." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Проверять плагины при запуске" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Исключить складские позиции во внешних местах хранения из инвентаризации" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Автоматический период инвентаризации" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Количество дней между автоматической записью запасов (установите нулевое значение для отключения)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Показывать полные имена пользователей" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Отображать полные имена пользователей вместо логинов" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "Включить данные тестовой станции" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "Включить сбор данных с тестовой станции для получения результатов тестирования" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистру)" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Скрывать неактивные части в результатах, отображаемых на главной странице," -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "Показывать недопустимые спецификации" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Показывать складские позиции с недавно изменившимися запасами на главной странице" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Показывать складские позиции с низкими запасами на главной странице" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Показывать закончившиеся складские позиции" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся складские позиции на главной странице" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Показывать требуемые складские позиции" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для производства складские позиции на главной странице" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Показывать складские позиции с истекшим сроком годности" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Показывать складские позиции с истёкшим сроком годности на главной странице" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Показывать залежалые складские позиции" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Показывать складские позиции с истекающим сроком годности на главной странице" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Показывать незавершённые производства" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые производства на главной странице" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Показывать просроченные производства" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные производства на главной странице" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Показать невыполненные заказы" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Показать просроченные заказы на производство" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Показать невыполненные заказы" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Показать просроченные заказы на продажу" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Показывать просроченные заказы на покупку на главной странице" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Показывать новости" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Принтер этикетки по умолчанию" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Настроить принтер этикеток по умолчанию" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Отображение встроенного отчета" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Поиск Деталей" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Поиск деталей поставщика" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Новая деталь производителя" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Исключить неактивные детали из окна предварительного просмотра поиска" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Категории поиска" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Поиск Запасов" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Отображать складские позиции в окне предварительного просмотра поиска" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Скрыть недоступные складские позиции" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Исключить недоступные складские позиции из окна предварительного просмотра поиска" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Поиск мест хранения" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Отображать места хранения в окне предварительного просмотра поиска" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Поиск компаний" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Поиск заказов на производство" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Отображать заказы на производство в окне предварительного просмотра поиска" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Поиск заказов на покупку" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Поиск заказов на возврат" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Поиск по Regex" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Фиксированная панель навигации" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Формат даты" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Инвентаризация детали" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Пользователь" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Цена" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Конечная точка" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Токен" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Токен для доступа" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Секрет" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "ID Сообщения" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Хост" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Заголовок" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Тело" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Работал над" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Код" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Заголовок" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Ссылка" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Опубликовано" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Автор" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Итого" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Читать" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Изображение" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Файл изображения" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Название единицы" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Символ" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Определение" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Вложения" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Файл не найден" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Комментарий" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Полученные элементы" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Пустой домен не допускается." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Недопустимое доменное имя: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Контактный EMail" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Контакт" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Для этой компании используется валюта по умолчанию" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Адрес" @@ -4228,223 +4300,212 @@ msgstr "Записи отправления для внутреннего пол msgid "Link to address information (external)" msgstr "Ссылка на адресную информацию (внешняя)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Деталь производителя" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Базовая деталь" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Выберите деталь" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Производитель" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Выберите производителя" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "Ссылка на сайт производителя" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Описание детали производителя" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Наименование параметра" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Значение" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Ед.изм" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Единицы измерения параметра" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Деталь поставщика" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Поставщик" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Выберите поставщика" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Код поставщика" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Выберите производителя части" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "Ссылка на сайт поставщика" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Описание детали поставщика" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Запись" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Упаковка" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Упаковка детали" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Кол-во в упаковке" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "множественные" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Кратность заказа" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Валюта по умолчанию для этого поставщи msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "На складе" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Неактивный" @@ -4526,17 +4587,17 @@ msgstr "Скачать изображение по ссылке" msgid "Delete image" msgstr "Удалить изображение" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Покупатель" @@ -4586,7 +4647,7 @@ msgstr "Создать новую деталь поставщика" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Новая деталь поставщика" @@ -4599,7 +4660,7 @@ msgstr "Детали производителя" msgid "Create new manufacturer part" msgstr "Создать новую деталь производителя" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Новая деталь производителя" @@ -4613,7 +4674,7 @@ msgstr "Склад поставщика" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Новый заказ на закупку" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Производители" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Заказать деталь" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Внутренняя деталь" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Поставщики" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Параметры" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Добавить параметр" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Заказать Деталь" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Создать новую складскую позицию" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Новая складская позиция" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Складские позиции" @@ -4996,21 +5057,21 @@ msgstr "" #: importer/models.py:497 msgid "Row Index" -msgstr "" +msgstr "Номер строки" #: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Данные" #: importer/models.py:505 machine/models.py:110 msgid "Errors" -msgstr "" +msgstr "Ошибки" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Корректный" @@ -5064,7 +5125,7 @@ msgstr "" #: importer/status_codes.py:11 msgid "Initializing" -msgstr "" +msgstr "Инициализация" #: importer/status_codes.py:12 msgid "Mapping Columns" @@ -5100,7 +5161,7 @@ msgstr "" #: machine/machine_types/label_printer.py:215 msgid "Copies" -msgstr "" +msgstr "Копии" #: machine/machine_types/label_printer.py:216 msgid "Number of copies to print for each label" @@ -5108,16 +5169,16 @@ msgstr "" #: machine/machine_types/label_printer.py:231 msgid "Connected" -msgstr "" +msgstr "Подключен" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Неизвестно" #: machine/machine_types/label_printer.py:233 msgid "Printing" -msgstr "" +msgstr "Печать" #: machine/machine_types/label_printer.py:234 msgid "No media" @@ -5141,7 +5202,7 @@ msgstr "" #: machine/machine_types/label_printer.py:250 msgid "Printer Location" -msgstr "" +msgstr "Расположение принтера" #: machine/machine_types/label_printer.py:251 msgid "Scope the printer to a specific location" @@ -5149,7 +5210,7 @@ msgstr "" #: machine/models.py:25 msgid "Name of machine" -msgstr "" +msgstr "Имя машины" #: machine/models.py:29 msgid "Machine Type" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Общая стоимость" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Статсу заказа" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "Имеет цену" @@ -5224,41 +5285,41 @@ msgstr "Имеет цену" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Заказ" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Заказ на возврат" @@ -5286,7 +5347,7 @@ msgstr "Описание заказа (дополнительно)" msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Ссылка на внешнюю страницу" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Ссылка на заказ" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "получил" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Дата создания" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Дата отгрузки" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "Отправлено" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Количество" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Записи о позиции" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Описание позиции (необязательно)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Контекст" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Цена за единицу" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "удалено" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Деталь поставщика" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Получено" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Цена последней продажи" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Доставлено" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Отгруженное кол-во" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Дата отправления" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Дата доставки" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Проверн" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Отправление" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Номер отправления" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Номер отслеживания" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Номер счета" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Отправка не имеет зарезервированных складских позиций" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Складская позиция не была назначена" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Невозможно зарезервировать складскую позицию в позицию другой детали" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Количество должно быть 1 для сериализированных складских позиций" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Строка" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Элемент" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Выберите складскую позицию для резервирования" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Укажите резервируемое количество" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Выберите позицию, возвращаемую от клиента" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Дата получения" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Результат" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Заказ не открыт" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Валюта цены закупки" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Позиция" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Выберите место назначения для полученных элементов" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих складских позиций" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Введите серийные номера для входящих складских позиций" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Штрих-код" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Сканированный штрих-код" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Валюта цены продажи" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Введите серийные номера для резервирования" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Потерян" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Возвращено" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Выполняется" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Возврат" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Починить" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Заменить" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Возврат" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Отклонить" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Редактировать заказ" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Отменить заказ" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Дублировать заказ" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Отменить заказ" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "Оформить Заказа" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Завершить заказ" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Ссылка на заказ" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Описание заказа" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Завершенные позиции" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Не завершен" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Создан" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Общая стоимость" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "Дублировать выбранное" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Удалить строку" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Общая Стоимость" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "Сведения о заказе" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Отправить" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Ожидающие отправления" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Действия" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Ревизия" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Ключевые слова" @@ -6298,7 +6369,7 @@ msgstr "Изображение Детали" msgid "Category ID" msgstr "Код категории" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Название категории" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Разновидность" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Минимальный запас" @@ -6323,19 +6394,19 @@ msgstr "Минимальный запас" msgid "Used In" msgstr "Используется в" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Производится" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Минимальная Стоимость" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Максимальная Стоимость" @@ -6347,19 +6418,19 @@ msgstr "ID родителя" msgid "Parent Name" msgstr "Имя родителя" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Путь к категории" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Детали" @@ -6376,126 +6447,130 @@ msgstr "ID Элемента BOM" msgid "Parent IPN" msgstr "Родительский IPN" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Минимальная цена" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Максимальная цена" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Остатки произведенные заказом на производство" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Остатки требуемые для заказов на производство" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Необходимо выбрать эту опцию" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Категория" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Место хранения по умолчанию" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Общий запас" @@ -6504,784 +6579,785 @@ msgstr "Общий запас" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Категория детали" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Место хранения по умолчанию для деталей этой категории" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Структура" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Детали не могут быть непосредственно отнесены к структурной категории, но могут быть отнесены к дочерним категориям." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Ключевые слова по умолчанию" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Иконка" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Иконка (необязательно)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Складская позиция с этим серийным номером уже существует" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Часть с таким именем, IPN и ревизией уже существует." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "Описание детали (необязательно)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Категория" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Ревизия или серийный номер детали" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Поставщик по умолчанию" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Срок действия по умолчанию" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для складских позиций этой детали" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Единицы измерения этой детали" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Эта деталь активна?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Контрольная сумма BOM" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "BOM проверил" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "Дата проверки BOM" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Создатель" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Последняя инвентаризация" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Продать несколько" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Минимальная Стоимость BOM" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Максимальная Стоимость BOM" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Количество Элементов" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Дата" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Дополнительные Записи" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Отчет" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Количество Деталей" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Шаблоны тестирования могут быть созданы только для отслеживаемых деталей" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Описание теста" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Включено" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Требуется" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Требуется значение" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Варианты" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Название параметра" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Описание параметра" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Чекбокс" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Значение Параметра" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Значение по умолчанию" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "Код или наименование детали" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Уровень" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "Уровень BOM" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Суб-деталь" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на производство)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Перерасход" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Расчетное количество перерасходов производства (абсолютное или процентное)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Записи о позиции BOM" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Контрольная сумма" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Проверен" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Позиция BOM-родителя" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Замена детали" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Подкатегории" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" -msgstr "" +msgstr "Результаты" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Валюта закупки складской позиции" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Не выбрана ни одна деталь" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Выберите категорию" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Оригинальная деталь" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Копировать Изображение" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Скопировать BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Скопировать параметры" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Копировать Записи" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Скопировать записи из оригинальной детали" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Код производителя" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Дублировать деталь" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Начальный запас" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Копировать параметры категории" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Копировать шаблоны параметров из выбранной категории деталей" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Существующее изображение" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Исключить складские позиции в внешних местах хранения" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Создать отчет" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Обновить детали" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Обновить" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Можно произвести" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" -msgstr "" +msgstr "Пропустить некорректные строки" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Некорректное количество" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Общее количество" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Выполнить инвентаризацию для этой части категории" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Вы подписаны на уведомления для данной категории" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Включить уведомления для данной категории" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Действия с категорией" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Редактировать категорию" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Удалить категорию" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Удалить категорию" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Категория детали верхнего уровня" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Детали (включая подкатегории)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Создать новую деталь" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Новая деталь" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Параметры детали" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Создать новую категорию деталей" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Новая категория" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Инвентаризация" @@ -7784,101 +7880,105 @@ msgstr "Шаблоны тестирования детали" msgid "Add Test Template" msgstr "Добавить шаблон тестирования" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Записи Детали" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Разновидности детали" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Создать новую разновидность" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Новая разновидность" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Связанные детали" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Добавить Связанные" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Спецификация" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Экспорт" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Экспорт BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Печать отчета о BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Действия с BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Загрузить BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Проверить BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Добавить элемент BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Производимые детали" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Производства детали" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Резервы заказа на производство" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Поставщики" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "Связанная деталь" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "Добавить связанную деталь" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Формат" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Выбрать формат файла" @@ -7937,7 +8037,7 @@ msgstr "Включить уведомления для данной детали #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Печать этикетки" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Действия со складом" @@ -7959,7 +8059,7 @@ msgstr "Установить запасы детали" msgid "Transfer part stock" msgstr "Переместить запасы детали" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Действия с деталью" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Минимальный складской запас" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Разновидности" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Склад" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Редактировать" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Последнее обновление" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "Обновить цены" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Нет запасов" @@ -8332,100 +8432,108 @@ msgstr "Действие не указано" msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "Штрих-код не соответствует существующим складским позициям" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "Складская позиция не соответствует позиции" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Установлено" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "Прогресс" @@ -9072,11 +9212,11 @@ msgstr "" #: report/models.py:464 report/models.py:487 msgid "Output File" -msgstr "" +msgstr "Выходной файл" #: report/models.py:465 report/models.py:488 msgid "Generated output file" -msgstr "" +msgstr "Сгенерированный выходной файл" #: report/models.py:476 msgid "Label output plugin" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Цена за Единицу" @@ -9173,8 +9313,10 @@ msgstr "Дополнительные элементы" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Всего" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "Результаты тестирования" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Тестирование" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Результат" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "Нет результата" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Установленные элементы" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Серийный номер" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "Код места хранения" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Путь места хранения" @@ -9279,7 +9421,7 @@ msgstr "Имя поставщика" msgid "Customer ID" msgstr "ID Клиента" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Установлено в" @@ -9304,9 +9446,9 @@ msgstr "Требуется рецензия" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Истекает" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Места хранения" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Владелец" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Выберите владельца" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Внешний" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Тип Места Хранения" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Вы не можете сделать это место хранение структурным, потому, что некоторые складские позиции уже находятся в нем!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Складские позиции не могут находиться в структурных местах хранения!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Складская позиция не может быть создана для виртуальных деталей" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Элемент должен иметь ссылку на производство, если is_building=True" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Ссылка на производство не указывает на тот же элемент" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Складская позиция" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Выберите соответствующего поставщика детали для этой складской позиции" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Где находиться эта складская позиция?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "Упаковка этой складской позиции хранится в" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Код партии для этой складской позиции" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Количество на складе" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Исходное производство" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Производства для этой складской позиции" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Поглощен" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Заказ на производство, который поглотил эту складскую позицию" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Заказ на закупку для этой складской позиции" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Дата истечения срока годности для складской позиции. Остатки будут считаться просроченными после этой даты" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту складскую позицию при обнулении складского запаса" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Складская позиция была назначена заказу на продажу" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Складская позиция установлена в другую деталь" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Складская позиция содержит другие детали" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Складская позиция была назначена покупателю" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Складская позиция в производстве" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Складские позиции должны ссылаться на одну и ту же деталь поставщика" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Записи Тестирования" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Просрочен" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Дочерние элементы" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "Закупочная цена для этой складской позиции, за единицу или за упаковку" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Введите количество складских позиций для сериализации" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Введите серийные номера для новых элементов" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Опциональное поле записей" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Выберите складскую позицию для установки" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "Добавить запись к транзакции (необязательно)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Складская позиция недоступна" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "Выбранная деталь отсутствует в спецификации" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Выберите деталь в которую будет преобразована складская позиция" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Невозможно преобразовать складскую позицию с назначенной деталью поставщика" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "Выберите складские позиции для изменения статуса" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "Не выбрано ни одной складской позиции" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Места хранения" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Элемент зарезервирован для заказа на производство" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Покупатель для назначения складских позиций" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Записи о назначенных запасах" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "Необходимо предоставить список складских позиций" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Записи о слияниях запасов" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Разрешить слияние складских позиций с различными поставщиками" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Разрешить слияние складских позиций с различными статусами" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Необходимо предоставить как минимум 2 складские позиции" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" -msgstr "" +msgstr "Нет изменений" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "Статус складской позиции" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Записи о перемещениях запасов" @@ -9971,7 +10117,7 @@ msgstr "Карантин" msgid "Legacy stock tracking entry" msgstr "Отслеживание устаревших запасов" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Складская позиция создана" @@ -10027,7 +10173,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Объединенные складские позиции" @@ -10047,7 +10193,7 @@ msgstr "Продукция заказа на производство завер msgid "Build order output rejected" msgstr "Продукция заказа на производство отклонена" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Поглощен заказом на производство" @@ -10108,7 +10254,7 @@ msgstr "Записи складской позиции" msgid "Installed Stock Items" msgstr "Установленные складские позиции" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Установить складскую позицию" @@ -10116,7 +10262,7 @@ msgstr "Установить складскую позицию" msgid "Delete all test results for this stock item" msgstr "Удалить все результаты тестирования для этой складской позиции" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "Добавить Результат Тестирования" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Сканировать в место хранения" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Действия печати" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Установить запасы" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Добавить Остатки" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Удалить запасы" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Сериализовать запасы" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Переместить запасы" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "Удалить складскую позицию" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Производство" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Вы не в списке владельцев этого элемента. Складская позиция не может быть отредактирована." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Только для чтения" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Место хранения не установлено" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "Преобразовать складскую позицию" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "Вернуть на склад" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Сканировать складские позиции в это место хранения" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Сканировать в складские позиции" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Действия с местом хранения" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Редактировать место хранения" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Удалить место хранения" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Склад верхнего уровня" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Ответственный за место хранения" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Создать новое место хранения" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Новое место хранения" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "места хранения" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10589,7 +10735,7 @@ msgstr "" #: templates/InvenTree/notifications/notifications.html:89 #: templates/js/translated/notification.js:85 msgid "Delete Notification" -msgstr "" +msgstr "Удалить уведомление" #: templates/InvenTree/notifications/sidebar.html:8 msgid "Inbox" @@ -10639,7 +10785,7 @@ msgstr "Регистрация" #: templates/InvenTree/settings/login.html:36 msgid "Single Sign On" -msgstr "" +msgstr "Единый вход" #: templates/InvenTree/settings/mixins/settings.html:5 #: templates/InvenTree/settings/settings.html:12 templates/navbar.html:147 @@ -10750,11 +10896,11 @@ msgstr "Сообщения" #: templates/InvenTree/settings/plugin_settings.html:16 msgid "Plugin information" -msgstr "" +msgstr "Информация о плагине" #: templates/InvenTree/settings/plugin_settings.html:47 msgid "no version information supplied" -msgstr "" +msgstr "нет информации о версии" #: templates/InvenTree/settings/plugin_settings.html:61 msgid "License" @@ -10766,15 +10912,15 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:76 msgid "Package information" -msgstr "" +msgstr "Информация о пакете" #: templates/InvenTree/settings/plugin_settings.html:82 msgid "Installation method" -msgstr "" +msgstr "Способ установки" #: templates/InvenTree/settings/plugin_settings.html:85 msgid "This plugin was installed as a package" -msgstr "" +msgstr "Этот плагин был установлен как пакет" #: templates/InvenTree/settings/plugin_settings.html:87 msgid "This plugin was found in a local server path" @@ -10782,11 +10928,11 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:93 msgid "Installation path" -msgstr "" +msgstr "Путь установки" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Встроенный" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Образец" @@ -10896,12 +11042,12 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:49 msgid "Rate" -msgstr "" +msgstr "Оценить" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Удалить" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "группа" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Редактировать шаблон" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Удалить шаблон" @@ -10954,40 +11100,40 @@ msgstr "Удалить шаблон" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "Типы местоположения склада не найдены" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "Количество мест хранения" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11110,7 +11256,7 @@ msgstr "" #: templates/InvenTree/settings/user.html:135 msgid "TOTP" -msgstr "" +msgstr "TOTP" #: templates/InvenTree/settings/user.html:141 msgid "Static" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Требуемое кол-во" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Минимальное количество" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "Отсоединить" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "Удалить складскую позицию" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "Расходник" @@ -12023,7 +12169,7 @@ msgstr "Просмотр BOM" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "Необходимая деталь" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "Вы уверены, что хотите отменить резерв msgid "Deallocate Stock Items" msgstr "Отменить резерв складских позиций" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "Выбрать Продукцию" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "Как минимум одна единица продукции должна быть выбрана" @@ -12143,288 +12289,288 @@ msgstr "Как минимум одна единица продукции дол msgid "Selected build outputs will be marked as complete" msgstr "Выбранная продукция будет отмечена как завершенная" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "Продукция" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "Завершить Продукцию" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "Выбранная продукция будет отмечена как списанная" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "Списанная продукция отмечена как отклоненная" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "Зарезервированная складская позиция более не доступна" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "Списать Продукцию" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "Выбранная продукция будет удалена" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "Продукция будет полностью удалена" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "Зарезервированные складские позиции были возвращены на склад" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "Удалить Продукцию" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "Завершенная продукция" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "Списанная продукция" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "Удаленная продукция" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "продукция" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "продукция" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "Действия с продукцией" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "Активная продукция не найдена" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "Зарезервированные Строки" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "Требуемые тесты" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "Выбрать детали" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "Выберите место хранения - источник (оставьте пустым, чтобы взять из всех мест)" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "Зарезервировать складские позиции для этого заказа на производства" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "Нет совпадающих складских позиций" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "Складские позиции будут автоматически зарезервированы на этот заказ на производстве, в соответствии с указанными рекомендациями" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "Зарезервировать Складские Позиции" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "Выбрать" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "Редактировать Резерв" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "строка производства" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "позиция производства" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "Отслеживаемая деталь" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "Количество единиц" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "Расходник" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "Отслеживаемый элемент" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "Запасы производства" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "Заказать запасы" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "Зарезервировать Остатки" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "Заказать детали" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "Деталь-шаблон" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "Производимая Деталь" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "Удалить параметр" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "Редактировать параметр" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "Удалить параметр" @@ -12669,45 +12815,45 @@ msgstr "Изменить разрыв цен" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "да" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "Выбрать фильтр" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Печать этикеток" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "Распечатать отчеты" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Добавить новый фильтр" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Создать фильтр" @@ -12749,39 +12895,39 @@ msgstr "Форма содержит ошибки" msgid "No results found" msgstr "Результаты не найдены" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Поиск" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "Очистить ввод" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "Столбец Файла" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "Имя Поля" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "Выбрать столбцы" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "ДА" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "НЕТ" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "Да" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "Новости не найдены" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "Код" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "Экспорт заказа" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "Дублировать Строку" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "Редактировать Строку" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "Удалить Строку" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "Дублировать Строку" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "Редактировать строку" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "Удалить строку" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "Атрибуты детали" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "Настройки создания детали" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "Добавить категорию детали" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "Создать Деталь" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "Редактировать Деталь" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "Деталь изменена" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "Активная Деталь" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "Любые складские позиции для этой запчасти будут удалены" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "Удалить Деталь" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "Низкий запас" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "Требуется" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "Ед. Изм." -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "Виртуальная Деталь" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "Деталь с подпиской" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "Продаваемая деталь" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "Детали не найдены" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "Указать категорию" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "деталь" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "детали" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Нет категории" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Отобразить списком" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "Отобразить сеткой" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "Отобразить древом" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "Категория с подпиской" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "результаты" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "Приблизительный" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "Максимальное количество" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "Код Заказа" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "Сканировать штрихкод входящего элемента (не должен совпадать с любой существующей складской позицией)" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "Заказ просрочен" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "Удалить позицию" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "Редактировать Позицию" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "Удалить позицию" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "Некорректный клиент" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "Удалить результат" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "Сериализировать складскую позицию" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "Действия со складской позиции в этом месте хранения" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "Введите начальное количество для этой складской позиции" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "Складская позиция дублирована" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "Дублировать складскую позицию" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "Вы уверены, что хотите удалить эту складскую позицию?" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "Удалить складскую позицию" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "Редактировать складскую позицию" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "Создать еще один элемент после этого" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "Некоторые данные будут потеряны при слиянии складских позиций" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "Подтвердить слияние складских позиций" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "Объединить складские позиции" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "Переместить запасы" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Переместить" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "Установить запасы" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "Количество" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "Взять" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "Добавить Запасы" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Добавить" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "Выбрать складские позиции" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "Выбрать как минимум одну складскую позицию" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "Подтвердите изменение запасов" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "ПРОШЕЛ" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "ПРОВАЛЕН" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "НЕТ РЕЗУЛЬТАТА" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "Тест пройден" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "Добавить Результат Тестирования" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "Редактировать результаты тестирования" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "Данные Тестирования" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "В производстве" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "Установленные складские позиции" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "Место хранения не установлено" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "Изменить статус запасов" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "Объединить Запасы" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "Удалить запасы" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "складские позиции" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "Действия с Запасами" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "Складская позиция в производстве" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "Складская позиция зарезервирована заказом на продажу" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "Складская позиция была назначена покупателю" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "Сериализированная складская позиция была зарезервирована " -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "Складские позиции были полностью зарезервированы" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "Складские позиции были частично зарезервированы" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "Складская позиция была установлена в другую деталь" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "Складская позиция была поглощена заказом на продажу" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "Складская позиция была просрочена" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "Складская позиция будет просрочена в скором времени" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "Складская позиция была отклонена" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "Складская позиция была утеряна" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "Складская позиция была уничтожена" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "Истощен" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "Кол-во Запаса" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "Нет складских позиций соответствующих запросу" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "места хранения" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "Подробности" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Нет изменений" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "Складская позиция не существует" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "Добавлено" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "Удалено" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "Снять складскую позицию" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "Выберите складскую позицию для съема" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "Установить другую складскую позицию в эту деталь" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "Складские позиции могут быть установлены, только если отвечают следующим критериям" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "Складская позиция ссылается на деталь, чья спецификация является этой складской позицией" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "Складская позиция сейчас доступна на складе" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "Складская позиция не установлена в другую деталь" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "Складская позиция отслеживается либо по коду партии, либо серийному номеру" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "Выберите одну или более складских позиций" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "Выбранные складские позиции" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "Изменить статус запасов" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "Статус заказа" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "Невыполненный" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "Назначено мне" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "Включая подкатегории" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "Подписан" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "Код партии" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "Активная Деталь" @@ -14584,56 +14743,64 @@ msgstr "Тест Пройден" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "Статус Производства" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "Включить детали в подкатегориях" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "Доступный запас" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "Имеет Ед. Изм." -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "Имеет IPN" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "В наличии" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "Можно купить" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "Имеет Варианты" @@ -14906,6 +15073,14 @@ msgstr "Настройки электронной почты" msgid "Email settings not configured" msgstr "Электронная почта не настроена" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Да" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index a223890e64..d9ca3d8127 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 5a198e6370..bea3165601 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -56,29 +56,30 @@ msgstr "Podrobnosti napake so vidne v pogledu administratorja" msgid "Enter date" msgstr "Vnesi datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Zapiski" @@ -91,118 +92,122 @@ msgstr "Vrednost '{name}' ni v predpisanem formatu" msgid "Provided value does not match required pattern: " msgstr "Podana vrednost se ujema s predpisanim vzorcem: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Vnesite geslo" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Vnesite novo geslo" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potrdite geslo" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potrdite novo geslo" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Staro geslo" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Ponovnite e-pošto" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potrdite e-pošto" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "E-pošti se morata ujemati" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Podana epošta ni veljavna." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registracija je onemogočena." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Podana napačna količina" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Prazno polje serijske številke" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Dvojna serijska številka" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Neveljavni doseg skupine: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Doseg skupine {group} presega dovoljene količine ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nepravilno zaporedje skupine: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Serijske številke niso najdene" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Število unikatnih serijskih številk ({len(serials)}) se mora ujemati s količino ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Odstranite oznako HTML iz te vrednosti" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Prijavite se v aplikacijo" msgid "Email" msgstr "E-pošta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Napaka pri izvajanju preverjanja vtičnika" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metapodatki morajo biti objekt tipa python dict" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metapodatki vtičnika" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodatkov JSON za uporabo pri zunanjih vtičnikih" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Nepravilno nastavljen vzorec" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Nastavljen neprepoznan ključ formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Manjka obvezen ključ formata" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referenčno polje ne sme biti prazno" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenca se mora ujemati s vzorcem" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referenčna številka prevelika" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (opcijsko)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Pot" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown opombe (neobvezno)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Podatki čtrne kode" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Podatki črtne kode tretje osebe" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Oznaka črtne kode" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "Povezava do oddaljene slike" msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Nadzor dela v ozadju neuspel" @@ -726,59 +731,59 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Nalog izgradnje" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Nalog izgradnje" msgid "Build Orders" msgstr "Nalogi izgradnje" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Neveljavna izbira za nadrejeno izgradnjo" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenca" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Nadrejena izgradnja" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Izberite del za izgradnjo" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Referenca dobavnica" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Dobavnica na katero se navezuje ta izgradnja" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Lokacija vira" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Izberite lokacijo dela za to izgradnjo (v primeru da ni pomembno pusti prazno)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Ciljna lokacija" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Izberite lokacijo, kjer bodo končne postavke shranjene" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Količina izgradenj" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Število postavk za izgradnjo" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Končane postavke" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Število postavk zaloge, ki so bile končane" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Status izgradnje" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Koda statusa izgradnje" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Številka serije" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Številka serije za to izgradnjo" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Datum ustvarjenja" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Rok dokončanja" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Datom končanja" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "dokončal" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Izdal" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Uporabnik, ki je izdal nalog za izgradnjo" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Odgovoren" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Zunanja povezava" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Zunanja povezava" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Nalog izgradnje {build} je dokončan" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Nalog izgradnej dokončan" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Ni določena izgradnja" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Igradnja je že dokončana" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Količina" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Količina za zalogo s serijsko številko mora biti 1" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Postavka zaloge" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Izvorna postavka zaloge" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Inštaliraj v" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Destinacija postavke zaloge" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Izgradnja" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Izgradnja se ne ujema z nadrejeno izgradnjo" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Izhodni del se ne ujema s naročilom sestava" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Ta sestava je že zaključena" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "V teku" @@ -1647,16 +1677,21 @@ msgstr "V teku" msgid "Production" msgstr "Proizvodnja" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Preklicano" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Končano" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Uporabnik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Povezava" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Priloga" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Manjka datoteka" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Izberite prilogo" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Poslano" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Izgubljeno" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Vrnjeno" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "V teku" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "Dano v karanteno" msgid "Legacy stock tracking entry" msgstr "Vnos zaloge postavke" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Postavka zaloge ustvarjena" @@ -10027,7 +10173,7 @@ msgstr "Razdeljena od nadrejene postavke" msgid "Split child item" msgstr "Razdeljena podrejena postavka" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Združena zaloga postavk" @@ -10047,7 +10193,7 @@ msgstr "Nalog za izgradnjo končan" msgid "Build order output rejected" msgstr "Nalog za izgradnjo zavrnjen" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Porabljeno v nalogu za izgradnjo" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Izdelava" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index 5227281c4d..9b9092801d 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:48\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -56,29 +56,30 @@ msgstr "Detalji o grešci se mogu naći u admin sekciji" msgid "Enter date" msgstr "Unesite datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Napomene" @@ -91,118 +92,122 @@ msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca" msgid "Provided value does not match required pattern: " msgstr "Navedena vrednost ne odgovara traženom obrascu: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Unesite lozinku" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Unesite novu lozinku" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Potvrdite lozinku" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Potvrdite novu lozinku" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Stara lozinka" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-pošta (ponovo)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Potvrda adrese e-pošte" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Svaki put morate upisati istu e-poštu." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Navedena primarna adresa e-pošte nije važeća." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Navedeni domen adrese e-pošte nije prihvaćen." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registracija je onemogućena." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Isporučena nevažeća količina" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Serijski broj nije popunjen" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Dupliciraj serijski broj" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nevažeći raspon grupe: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Raspon grupe {group} prelazi dozvoljenu količinu ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nevažeća sekvenca grupe: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Nisu pronađeni serijski brojevi" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Broj jedinstvenih serijskih brojeva ({len(serials)}) mora odgovarati količini ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Uklonite HTML oznake iz ove vrednosti" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Greška u povezivanju" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Server je odgovorio nevažećim statusnim kodom" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Došlo je do izuzetka" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Veličina slike je prevelika" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Preuzimanje slike premašilo je maksimalnu veličinu" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Udaljeni server vratio je prazan odgovor" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "E-Pošta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metapodaci moraju biti \"python dict\" objekat" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Metapodaci dodatka" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Neispravno formatiran obrazac" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Naveden je ključ nepoznatog formata" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Nedostaje potreban ključ formata" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Polje za reference ne može biti prazno" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referenca mora odgovarati traženom obrascu" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Broj reference je predugačak" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Ime" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Opis (Opciono)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Putanja" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Zabeleške (Opciono)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Podaci sa barkoda" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Podaci sa barkoda trećih lica" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Heš barkoda" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Jedinstveni hash barkoda" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Postojeći barkod pronađen" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Greška servera" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Mora biti važeći broj" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "URL udaljene slike" msgid "Downloading images from remote URL is not enabled" msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Provera pozadinskog radnika nije uspjela" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Nalog za izradu" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Nalog za izradu" msgid "Build Orders" msgstr "Nalozi za izradu" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Nevažeći izbor za nadređenu verziju" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Deo u nalogu za izradu ne može se izmeniti" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Reference naloga za pravljenje" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referenca" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Kratak opis izrade (nije obavezno)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Link za eksterni URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Na čekanju" @@ -1647,16 +1677,21 @@ msgstr "Na čekanju" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Otkazano" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Gotovo" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Korisnik" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Prilog" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Nedostaje datoteka" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Nedostaje eksterni link" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Izaberite datoteku za prilog" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Poslato" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Izgubljeno" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Vraćeno" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "U progresu" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "U karantinu" msgid "Legacy stock tracking entry" msgstr "Nasleđeni unos za praćenje zaliha" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stavka na zalihi stvorena" @@ -10027,7 +10173,7 @@ msgstr "Odvoj od nadređene stavke" msgid "Split child item" msgstr "Podeli podređenu stavku" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Spojene stavke zaliha" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index 4333b5d0e5..7a303fd33a 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -56,29 +56,30 @@ msgstr "Information om felet finns under Error i adminpanelen" msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Anteckningar" @@ -91,118 +92,122 @@ msgstr "Värdet '{name}' visas inte i mönsterformat" msgid "Provided value does not match required pattern: " msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Ange lösenord" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Ange nytt lösenord" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Bekräfta nytt lösenord" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Tidigare lösenord" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-post (igen)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Bekräfta e-postadress" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Du måste ange samma e-post varje gång." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Den angivna primära e-postadressen är inte giltig." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Registrering är stängd." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Serienummret finns redan" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "E-postadress" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Felaktigt formaterat mönster" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Okänd formatnyckel angiven" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Obligatorisk formatnyckel saknas" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Textfältet kan inte lämnas tomt" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referensen måste matcha obligatoriskt mönster" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referensnumret är för stort" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Namn" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Sökväg" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Streckkodsdata" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "URL för fjärrbildsfil" msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Kontroll av bakgrundsarbetare misslyckades" @@ -726,59 +731,59 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Byggnationen måste avbrytas innan den kan tas bort" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Byggorder" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Byggorder" msgid "Build Orders" msgstr "Byggordrar" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Ogiltigt val för överordnad bygge" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Byggorderreferens" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referens" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Överordnat Bygge" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Byggorder till vilken detta bygge är tilldelad" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Del" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Välj del att bygga" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Försäljningsorderreferens" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Försäljningsorder till vilken detta bygge allokeras" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Källa Plats" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Välj plats att ta lager från för detta bygge (lämna tomt för att ta från någon lagerplats)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Destinationsplats" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Välj plats där de färdiga objekten kommer att lagras" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Bygg kvantitet" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Antal lagerobjekt att bygga" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Slutförda objekt" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Antal lagerposter som har slutförts" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Byggstatus" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Bygg statuskod" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Batchkod" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Skapad" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Datum för slutförande" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Slutförandedatum" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "slutfört av" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Utfärdad av" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Användare som utfärdade denna byggorder" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Ansvarig" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Extern länk" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Länk till extern URL" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "Projektkod" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Byggorder {build} har slutförts" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "En byggorder har slutförts" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Ingen byggutgång angiven" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Byggutgång är redan slutförd" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Antal" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Installera till" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Destination lagervara" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Bygg utdata" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Byggutdata matchar inte överordnad version" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Plats" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Status" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Acceptera ofullständig" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Serienummer" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Serienummer" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Väntar" @@ -1647,16 +1677,21 @@ msgstr "Väntar" msgid "Production" msgstr "Produktion" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Avbruten" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Slutför" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Visa QR-kod" @@ -1707,7 +1742,7 @@ msgstr "Visa QR-kod" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Redigera bygge" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Avbryt bygge" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Avbryt bygge" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Ta bort bygge" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Färdigställ bygget" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Byggbeskrivning" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Måldatum" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Försenad" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Försäljningsorder" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Utfärdad av" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Mål" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Skapad" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Slutförd" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Bilagor" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Bygganteckningar" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Ny byggorder" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Fil" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Unik projektkod" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Projektbeskrivning" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Ingen grupp" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Omstart krävs" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Serverinstans (Namn)" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Företagsnamn" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Internt företagsnamn" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Bas-URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "Bas-URL för serverinstans" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "dagar" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Ladda ner från URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Tillåt nedladdning av bilder och filer från extern URL" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Kräv bekräftelse" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Stöd för streckkoder" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mall" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Delar är virtuella som standard" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Visa import i vyer" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Visa importguiden i vissa delvyer" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Visa relaterade delar" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Visa relaterade delar för en del" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Visningsformat för delnamn" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Interna priser" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Aktivera testrapporter" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Aktivera registrering" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Tillåtna domäner" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Aktivera projektkoder" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Visa nyheter" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Sök efter artiklar" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Sök efter leverantörsartikel" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Sök efter tillverkarartikel" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Datumformat" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Användare" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Länk" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Bild" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bilaga" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Saknad fil" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Extern länk saknas" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "Filstorlek" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ogiltigt domännamn: {domain}" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Kontakt" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adress" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Tillverkare" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Leverantör" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Välj leverantör" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "Företagsnamn" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "I lager" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "Radera bild" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Kund" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Tillverkare" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Leverantörer" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Parametrar" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Orderstatus" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Skickad" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Streckkod" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Förlorad" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Återlämnad" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Pågående" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Reparera" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Ersätt" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Återbetala" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Avvisa" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Nyckelord" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Kategorinamn" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Artiklar" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Kategori" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Ikon" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Ikon (valfritt)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Standardleverantör" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Datum" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Underkategorier" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Välj kategori" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Kopiera bild" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Generera rapport" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Uppdatera" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Redigera kategori" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Redigera kategori" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Radera kategori" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Radera kategori" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Ny kategori" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Välj filformat" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Redigera" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Senast uppdaterad" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "Ingen åtgärd specificerad" msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "Leverantörsnamn" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "I karantän" msgid "Legacy stock tracking entry" msgstr "Spårningspost för äldre lager" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Lagerpost skapad" @@ -10027,7 +10173,7 @@ msgstr "Dela från överordnat objekt" msgid "Split child item" msgstr "Dela underordnat objekt" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Sammanfogade lagerposter" @@ -10047,7 +10193,7 @@ msgstr "Bygg orderutgång slutförd" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Konsumeras av byggorder" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Bygg" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Radera" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "Inga projektkoder hittades" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "Redigera mall" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "Radera mall" @@ -10954,40 +11100,40 @@ msgstr "Radera mall" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "Skriv ut etiketter" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "Lägg till nytt filter" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "Rensa alla filter" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "Skapa filter" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "Inga resultat hittades" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "Söker" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "JA" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "NEJ" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "Ingen kategori" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "Visa som lista" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "Inga underkategorier hittades" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "Ladda underkategorier" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "resultat" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "Ogiltig kund" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "Ange serienummer" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "Flytta" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Lägg till" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "Inga ändringar" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "Har projektkod" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Ja" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 00b86e25fa..caf3e1963f 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:39\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "ป้อนวันที่" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "หมายเหตุ" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "ป้อนรหัสผ่าน" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "ป้อนรหัสผ่านใหม่" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "ยืนยันรหัสผ่าน" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "ยืนยันรหัสผ่านใหม่" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "รหัสผ่านเดิม" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "อีเมล (อีกครั้ง)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "การยืนยันอีเมล" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "หมายเลขซีเรียลซ้ำกัน" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "ไม่พบหมายเลขซีเรียล" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "อีเมล" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "ข้อมูลเมตาของปลั๊กอิน" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "ชื่อ" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "ข้อมูลบาร์โค้ด" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "เกี่ยวกับ Inventree" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "ออกโดย" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "สถานที่" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "สถานะ" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" @@ -1647,16 +1677,21 @@ msgstr "อยู่ระหว่างดำเนินการ" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "ยกเลิกแล้ว" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "สำเร็จแล้ว" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "สำเร็จแล้ว" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "ผู้ใช้งาน" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "ลิงก์" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "ไฟล์แนบ" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "ไม่พบไฟล์" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "ความคิดเห็น" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "จัดส่งแล้ว" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "สูญหาย" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "ส่งคืนแล้ว" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "ชิ้นส่วน" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index 61d2f50d51..3206ef6ce9 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -56,29 +56,30 @@ msgstr "Hata detaylarını admin panelinde bulabilirsiniz" msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Notlar" @@ -91,118 +92,122 @@ msgstr "'{name}' değeri desen formatında yer almıyor" msgid "Provided value does not match required pattern: " msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Şifrenizi girin" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Lütfen Yeni Parolayı Girin" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Parolayı doğrulayın" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Yeni parolayı doğrulayın" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Eski parola" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "E-posta (tekrar)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "E-posta adresi onayı" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Her seferind eaynı e-posta adresini yazmalısınız." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Sağlanan e-posta adresi geçerli değil." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Kayıt devre dışı." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Yinelenen seri" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Geçersiz grup aralığı: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Grup aralığı {group}, izin verilen miktarı aşmaktadır ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Geçersiz grup aralığı: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Benzersiz seri numaralarının sayısı ({len(serials)}) ile miktarın ({expected_quantity}) eşleşmesi gerekmektedir" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Bu değerden HTML etiketlerini kaldır" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Resim boyutu çok büyük" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Resim indirme boyutu izin verilenden büyük" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Uygulamaya giriş yap" msgid "Email" msgstr "E-posta" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "Eklenti doğrulama sırasında hata oluştu" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Metadata, bir python dict nesnesi olmalıdır" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Plugin Metaverileri" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Harici eklentiler tarafından kullanım için JSON metadata alanı" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Yanlış biçimlendirilmiş desen" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Belirtilen bilinmeyen format anahtarı" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Gerekli format anahtarı eksik" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Referans alanı boş olamaz" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Referans sayısı çok fazla" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Yol" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Markdown notları (isteğe bağlı)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Barkod Verisi" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Üçüncü parti barkod verisi" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Barkod Hash" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Barkod verisinin benzersiz hash'i" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Var olan barkod bulundu" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Bir hafta sunucu tarafından kayıt edildi." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Aktif" @@ -662,7 +667,7 @@ msgstr "Uzaktan görüntü dosya URL'si" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Arka plan çalışanı kontrolü başarısız oldu" @@ -726,59 +731,59 @@ msgstr "InvenTree Hakkında" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Mevcut" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Yapım İşi Emri" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Yapım İşi Emri" msgid "Build Orders" msgstr "Yapım İşi Emirleri" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Referans" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Üst Yapım İşi" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Parça" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Yapım işi için parça seçin" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Satış Emri Referansı" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Kaynak Konum" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Hedef Konum" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Yapım İşi Miktarı" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Yapım işi stok kalemlerinin sayısı" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Tamamlanmış ögeler" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Tamamlanan stok kalemlerinin sayısı" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Yapım İşi Durumu" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Sıra numarası" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Oluşturulma tarihi" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Hedef tamamlama tarihi" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Tamamlama tarihi" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "tamamlayan" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Veren" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Sorumlu" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Yapım işi çıktısı zaten tamamlanmış" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Miktar" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Seri Numaraları" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Yapım işi çıktısı için seri numaraları girin" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Konum" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Durum" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Gerekli stok tamamen tahsis edilemedi" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Gerekli yapım işi miktarı tamamlanmadı" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Üretici Parça Numarası" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Paketleme" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Seri Numara" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Seri Numara" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Takip Edilebilir" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Bekliyor" @@ -1647,16 +1677,21 @@ msgstr "Bekliyor" msgid "Production" msgstr "Üretim" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "İptal edildi" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Tamamlandı" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Barkod işlemleri" @@ -1696,7 +1731,7 @@ msgstr "Barkod işlemleri" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Yapım İşini Düzenle" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Yapım İşini İptal Et" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Yapım İşini İptal Et" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Tamamlanmış Yapım İşi" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Hedeflenen tarih" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Vadesi geçmiş" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Sipariş Emri" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Veren" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Hedef" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Toplu" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Oluşturuldu" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Hedef tarih ayarlanmadı" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Tamamlandı" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "Tamamlanmış Yapım İşi Çıktıları" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Ekler" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Yeni Yapım İşi Emri" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "Tamamlanmamış Çıktılar" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "{name.title()} Dosya" msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "günler" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Şablon" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Montaj" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Bileşen" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Sanal" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Kullanıcı" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Fiyat" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Bağlantı" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "Resim" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Ek" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Eksik dosya" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Yorum" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "İletişim e-posta adresi" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "İletişim" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Adres" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Temel Parça" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Parça seçin" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Üretici" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "ÜPN" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Parametre adı" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Değer" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Tedarikçi Parçası" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Tedarikçi" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Not" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Paketleme" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "çoklu" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Pasif" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Müşteri" @@ -4586,7 +4647,7 @@ msgstr "Yeni tedarikçi parçası oluştur" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "Tedarikçi Stoku" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Yeni Satın Alma Emri" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Üreticiler" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Parça siparişi" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Tedarikçi Parça Stoku" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Sevk edildi" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Kayıp" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "İade" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Devam Ediyor" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Geri Dön" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Siparişi iptal et" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Siparişi iptal et" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Siparişi tamamlandı olarak işaretle" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Toplam Maliyet" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "İşlemler" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "DPN" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Revizyon" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Anahtar kelimeler" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Çeşidi" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimum Stok" @@ -6323,19 +6394,19 @@ msgstr "Minimum Stok" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Parçalar" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Varsayılan Konum" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Parça adı" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Etkin" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Gerekli" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Alt kategoriler" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Parçalar (Alt kategoriler dahil)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "Parça Test Şablonları" msgid "Add Test Template" msgstr "Test Şablonu Ekle" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Parça Çeşitleri" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Yeni çeşit oluştur" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Yeni Çeşit" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Parça Tedarikçileri" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "Etiket Yazdır" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Stok işlemleri" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Parça işlemleri" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Stok" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Stok Yok" @@ -8332,100 +8432,108 @@ msgstr "İşlem belirtilmedi" msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Seri No" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Alt konumlar" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "Karantinaya alındı" msgid "Legacy stock tracking entry" msgstr "Eski stok izleme girişi" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Stok kalemi oluşturuldu" @@ -10027,7 +10173,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Stok parçalarını birleştir" @@ -10047,7 +10193,7 @@ msgstr "Yapım emri çıktısı tamamlandı" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Konuma Tara" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Yazdırma işlemleri" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "Stok ayarlama işlemleri" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Stoku seri numarala" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Yapım İşi" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Konum ayarlanmadı" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "Bu işlem kolayca geri alınamaz" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Konum işlemleri" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Konumu düzenle" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Konumu sil" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Yeni Konum" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Hata Raporu Gönder" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "panoya kopyala" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "E-posta Ayarları" msgid "Email settings not configured" msgstr "E-posta ayarları yapılandırılmadı" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Evet" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index 53b4c5f083..2f4e81afa2 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -56,29 +56,30 @@ msgstr "Деталі помилки можна знайти на панелі а msgid "Enter date" msgstr "Введіть дату" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Нотатки" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Введіть пароль" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Введіть новий пароль" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Підтвердити пароль" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Підтвердити новий пароль" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Старий пароль" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (ще раз)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Підтвердження адреси електронної пошти" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Ви повинні використовувати щоразу однаковий email." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Вказана основна адреса електронної пошти недійсна." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Наданий домен електронної пошти не затверджено." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Реєстрацію вимкнено." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Невірна кількість" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Пустий серійний номер" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index fb25197f85..7fe03f87dd 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -56,29 +56,30 @@ msgstr "Chi tiết lỗi có thể được tìm thấy trong bảng quản tr msgid "Enter date" msgstr "Nhập ngày" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "Ghi chú" @@ -91,118 +92,122 @@ msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu" msgid "Provided value does not match required pattern: " msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "Nhập mật khẩu" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "Nhập mật khẩu mới" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "Xác nhận mật khẩu mới" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "Mật khẩu cũ" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (nhắc lại)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Xác nhận địa chỉ email" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "Bạn phải nhập cùng một email mỗi lần." -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "Chuỗi số sê-ri trống" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "Trùng lặp sê-ri" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Phạm vi nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Khoảng nhóm {group} vượt cho phép số lượng ({expected_quantity})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Thứ tự nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "Không tìm thấy số sê-ri" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Số sê ri duy nhất ({len(serials)}) phải phù hợp số lượng ({expected_quantity})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "Xóa thẻ HTML từ giá trị này" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" @@ -366,158 +371,158 @@ msgstr "[{site_name}] Đăng nhập vào ứng dụng" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "Siêu dữ liệu phải là đối tượng từ điển của python" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "Phụ trợ siêu dữ liệu" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "Mẫu được định dạng không thích hợp" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "Khóa định dạng không rõ ràng đã được chỉ định" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "Thiếu khóa định dạng cần thiết" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "Trường tham chiếu không thể rỗng" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "Số tham chiếu quá lớn" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "Tên" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "Đường dẫn" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "Ghi chú markdown (không bắt buộc)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "Dữ liệu mã vạch" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "Dữ liệu mã vạch của bên thứ ba" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "Dữ liệu băm mã vạch" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "Hoạt động" @@ -662,7 +667,7 @@ msgstr "URL của tệp hình ảnh bên ngoài" msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "Nhân công chạy ngầm kiểm tra thất bại" @@ -726,59 +731,59 @@ msgstr "Giới thiệu" msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "Tuỳ chọn" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "Đã theo dõi" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "Có sẵn" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "Tạo đơn hàng" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "Tạo đơn hàng" msgid "Build Orders" msgstr "Tạo đơn hàng" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "Lựa chọn sai cho bản dựng cha" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "Sản phẩm đơn đặt bản dựng không thể thay đổi được" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "Tham chiếu" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "Mô tả ngắn về phiên bạn (Tùy chọn)" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "Phiên bản cha" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "Đơn đặt bản dựng với bản dựng này đã được phân bổ" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "Nguyên liệu" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "Chọn sản phẩm để xây dựng" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "Đơn đặt bán hàng với bản dựng này đã được phân bổ" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "Địa điểm nguồn" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "Chọn địa điểm để lấy trong kho cho bản dựng này (để trống để lấy từ bất kỳ vị trí kho nào)" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "Địa điểm đích" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "Chọn địa điểm nơi hàng hóa hoàn thiện sẽ được lưu kho" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "Xây dựng số lượng" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "Số kho hàng để dựng" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "Những mục hoàn thành" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "Số sản phẩm trong kho đã được hoàn thiện" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "Trnạg thái bản dựng" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "Mã trạng thái bản dựng" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "Mã lô hàng" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "Mã lô cho đầu ra bản dựng này" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "Ngày tạo" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "Ngày hoàn thành mục tiêu" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "Ngày hoàn thành" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "hoàn thành bởi" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "Cấp bởi" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "Chịu trách nhiệm" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản dựng này" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "Liên kết bên ngoài" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "Độ ưu tiên" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "Độ quan trọng của đơn đặt bản dựng" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "Độ quan trọng của đơn đặt bản dựng" msgid "Project Code" msgstr "Mã dự án" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "Mã dự án cho đơn đặt bản dựng này" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "Đơn đặt bản dựng {build} đã được hoàn thành" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "Một đơn đặt bản dựng đã được hoàn thành" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "Không có đầu ra bản dựng đã được chỉ ra" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "Đầu ra bản dựng đã được hoàn thiện" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "Số lượng không thể lớn hơn số lượng đầu ra" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "Dựng đối tượng" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "Dựng đối tượng" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "Số lượng" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "Yêu cầu số lượng để dựng đơn đặt" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "Số lượng phải là 1 cho kho sê ri" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "Kho hàng" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "Kho hàng gốc" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "Số lượng kho hàng cần chỉ định để xây dựng" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "Cài đặt vào" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "Kho hàng đích" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "Tên sản phẩm" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "Đầu ra bản dựng" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "Đầu ra xây dựng không hợp với bản dựng cha" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "Đầu ra sản phẩm không phù hợp với bản dựng đơn đặt hàng" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "Đầu ra bản dựng này đã được hoàn thành" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "Đầu ra bản dựng này chưa được phân bổ đầy đủ" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "Điền số lượng cho đầu ra bản dựng" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "Số lượng nguyên dương cần phải điền cho sản phẩm có thể theo dõi" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Cần nhập số lượng nguyên dương, bởi vì hóa đơn vật liệu chứa sản phẩm có thể theo dõi" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "Số sê-ri" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "Nhập vào số sêri cho đầu ra bản dựng" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "Địa điểm" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "Số sêri tự cấp" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "Danh sách đầu ra bản dựng phải được cung cấp" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "Vị trí kho cho đầu ra phế phẩm" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "Hủy phân bổ" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "Hủy bất kỳ phân kho nào cho đầu ra phế phẩm" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "Lý do loại bỏ đầu ra bản dựng" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "Trạng thái" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "Chấp nhận phân kho dang dở" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "Hoàn hiện đầu ra nếu kho chưa được phân bổ hết chỗ trống" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "Xóa toàn bộ đầu ra chưa hoàn thành" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "Xóa bất kỳ đầu ra bản dựng nào chưa được hoàn thành" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "Chưa được cấp phép" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "Chấp nhận trạng thái tiêu hao bởi đơn đặt bản dựng này" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "Phân bổ trước khi hoàn thiện đơn đặt bản dựng này" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "Kho quá tải" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Bạn muốn thế nào để xử lý hàng trong kho được gán thừa cho đơn đặt bản dựng" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "Một vài hàng hóa đã được phân bổ quá thừa" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "Chấp nhận chưa phân bổ được" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Chấp nhận hàng hóa không được phân bổ đầy đủ vào đơn đặt bản dựng này" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "Kho được yêu cầu chưa được phân bổ hết không gian" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "Chấp nhận không hoàn thành" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "Chấp nhận số yêu cầu của đầu ra bản dựng chưa được hoàn thành" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "Số lượng bản dựng được yêu cầu chưa được hoàn thành" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "Đơn đặt bản dựng có đầu ra chưa hoàn thiện" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "Lộ giới" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "Đầu ra bản dựng" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "Đầu ra bản dựng phải chỉ đến bản dựng tương ứng" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "Mục chi tiết bản dựng" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part phải trỏ đến phần tương tự của đơn đặt bản dựng" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "Hàng hóa phải trong kho" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Số lượng có sẵn ({q}) đã bị vượt quá" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "Đầu ra bản dựng phải được xác định cho việc phân sản phẩm được theo dõi" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Đầu ra bản dựng không thể chỉ định cho việc phân sản phẩm chưa được theo dõi" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "Hàng hóa phân bổ phải được cung cấp" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Vị trí kho nơi sản phẩm được lấy ra (để trống để lấy từ bất kỳ vị trí nào)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "Ngoại trừ vị trí" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "Không bao gồm hàng trong kho từ vị trí đã chọn này" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "Kho trao đổi" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Hàng trong kho thuộc nhiều vị trí có thể dùng thay thế được cho nhau" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "Kho thay thế" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "Cho phép phân kho sản phẩm thay thế" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "Mục tùy chọn" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "Phân bổ các mục hóa đơn vật liệu tùy chọn đến đơn đặt bản dựng" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "Mã số nhà sản xuất" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "Tên địa điểm" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "Đóng gói" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "ID sản phẩm" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "IPN sản phẩm" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "Số sê-ri" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "Số lượng sẵn có" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "Mô tả sản phẩm" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "Số sê-ri" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "Số lượng sẵn có" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "Có thể theo dõi" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "Mục BOM" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bật đơn hàng" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "Đang sản xuất" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "Số hàng tồn" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "Đợi duyệt" @@ -1647,16 +1677,21 @@ msgstr "Đợi duyệt" msgid "Production" msgstr "Sản xuất" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "Đã hủy" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "Hoàn thành" @@ -1684,8 +1719,8 @@ msgstr "Ảnh thu nhỏ sản phẩm" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "Chức năng mã vạch" @@ -1696,7 +1731,7 @@ msgstr "Chức năng mã vạch" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "Hiển thị mã QR" @@ -1707,7 +1742,7 @@ msgstr "Hiển thị mã QR" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "Gỡ mã vạch" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "Liên kết mã vạch" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "Sửa bản dựng" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "Hủy bản dựng" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "Nhân bản bản dựng" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "Hủy bản dựng" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "Xóa bản dựng" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "Bản dựng hoàn thiện" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "Mô tả bản dựng" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "Không có đầu ra bản dựng đã được tạo cho đơn đặt bản dựng này" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "Đơn đặt bản dựng đã được đánh dấu hoàn thành" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "Đơn đặt bản dựng không thể hoàn thiện bởi vì những đầu ra nổi bật còn tồn tại" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "Số lượng bản dựng được yêu cầu chưa được hoàn thành" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựng này" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "Ngày mục tiêu" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "Bản dựng đã đến hạn vào %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "Quá hạn" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "Đầu ra hoàn thiện" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "Đơn đặt hàng" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "Phát hành bởi" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "Độ ưu tiên" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "Nguồn kho" msgid "Stock can be taken from any available location." msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào." -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "Đích đến" @@ -1890,21 +1945,21 @@ msgstr "Sản phẩm đã phân bổ" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "Hàng loạt" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "Đã tạo" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "Chưa đặt ngày mục tiêu" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "Đã hoàn thành" @@ -1987,7 +2042,11 @@ msgstr "Kho tiêu thụ" msgid "Completed Build Outputs" msgstr "Đầu ra bản dựng hoàn thiện" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "Đầu ra bản dựng hoàn thiện" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "Tập tin đính kèm" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "Ghi chép bản dựng" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "Tạo đơn đặt bản dựng" @@ -2037,15 +2096,20 @@ msgstr "Mục dòng" msgid "Incomplete Outputs" msgstr "Đầu ra chưa hoàn thiện" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "Tập tin {name.title()}" msgid "Select {name} file to upload" msgstr "Chọn tập tin {name} để tải lên" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "Đã cập nhật" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "Nhãn thời gian của lần cập cuối cùng" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "Mã dự án duy nhất" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "Mô tả dự án" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "Người dùng hoặc nhóm có trách nhiệm với dự án này" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "Giá trị cài đặt" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "Giá trị đã chọn không hợp lệ" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "Giá trị phải là kiểu boolean" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "Giá trị phải là một số nguyên dương" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "Chuỗi khóa phải duy nhất" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "Không có nhóm" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "Cần khởi động lại" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "Chuyển dữ liệu chờ xử lý" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "Số đợt nâng cấp cơ sở dữ liệu chờ xử lý" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "Tên thực thể máy chủ" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "Mô tả chuỗi cho thực thể máy chủ" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "Sử dụng tên thực thể" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "Sử dụng tên thực thể trên thanh tiêu đề" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "Cấm hiển thị `giới thiệu`" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "Tên công ty" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "Tên công ty nội bộ" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "URL cơ sở" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "URL cơ sở cho thực thể máy chủ" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "Tiền tệ mặc định" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "Chọn tiền tệ chính khi tính giá" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "Tần suất cập nhật tiền tệ" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "ngày" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "Phần mở rộng cập nhật tiền tệ" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "Tải về từ URL" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "Giới hạn kích thước tải xuống" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "User-agent được dùng để tải xuống theo URL" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "Yêu cầu xác nhận" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định." -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "Cấp độ cây" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết." -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "Thời gian kiểm tra bản cập nhật" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "Sao lưu tự động" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "Khoảng thời gian sao lưu tự động" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "Xác định số ngày giữa các kỳ sao lưu tự động" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "Khoảng thời gian xóa tác vụ" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "Khoảng thời gian xóa nhật ký lỗi" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "Khoảng thời gian xóa thông báo" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Hỗ trợ mã vạch" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "Độ trễ quét mã vạch" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "Thời gian trễ xử lý đầu đọc mã vạch" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "Hỗ trợ mã vạch qua webcam" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 msgid "Part Revisions" msgstr "Phiên bản Sản phẩm" -#: common/models.py:1407 +#: common/models.py:1426 msgid "Enable revision field for Part" msgstr "Bật trường phiên bản cho sản phẩm" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 msgid "Allow Deletion from Assembly" msgstr "" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "Mẫu IPN" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "Cho phép trùng IPN" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "Cho phép sửa IPN" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "Sao chép dữ liệu BOM của sản phẩm" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "Sao chép dữ liệu tham số sản phẩm" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "Chép thông tin kiểm thử sản phẩm" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "Sao chéo mẫu tham số danh mục" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "Mẫu" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "Lắp ráp" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "Thành phần" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "Có thể mua" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "Có thể bán" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "Sản phẩm mặc định có thể bán được" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "Sản phẩm mặc định có thể theo dõi được" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "Ảo" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "Sản phẩm mặc định là số hóa" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "Hiển thị Nhập liệu trong khung xem" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "Hiển thị sản phẩm liên quan" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "Số liệu tồn kho ban đầu" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "Dữ liệu nhà cung cấp ban đầu" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "Định dạng tên sản phẩm hiển thị" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "Định dạng để hiển thị tên sản phẩm" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "Biểu tượng mặc định của danh mục sản phẩm" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "Bắt buộc đơn vị tham số" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối thiểu" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối đa" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "Sử dụng giá bán nhà cung cấp" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "Ghi đè lịch sử mua hàng" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "Sử dụng giá hàng hóa trong kho" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Dùng giá bán từ dữ liệu kho nhập vào thủ công đối với bộ tính toán giá bán" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "Tuổi giá kho hàng" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Loại trừ hàng hóa trong kho cũ hơn số ngày ngày từ bảng tính giá bán" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "Sử dụng giá biến thể" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "Bao gồm giá biến thể trong bộ tính toán giá tổng thể" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "Chỉ các biến thể hoạt động" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "Chỉ sử dụng sản phẩm biến thể hoạt động để tính toán giá bán biến thể" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "Tần suất tạo lại giá" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "Số ngày trước khi giá sản phẩm được tự động cập nhật" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "Giá nội bộ" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "Bật giá nội bộ cho sản phẩm" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "Ghi đè giá nội bộ" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "Bật in tem nhãn" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "Bật chức năng in tem nhãn từ giao diện web" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "DPI hỉnh ảnh tem nhãn" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "Bật báo cáo" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "Cho phép tạo báo cáo" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "Chế độ gỡ lỗi" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "Tạo báo cáo trong chế độ gỡ lỗi (đầu ra HTML)" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "Khổ giấy" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "Kích thước trang mặc định cho báo cáo PDF" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "Bật báo cáo kiểm thử" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "Cho phép tạo báo cáo kiểm thử" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "Đính kèm báo cáo kiểm thử" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Khi in một báo cáo kiểm thử, đính kèm một bản sao của báo cáo kiểm thử với hàng trong kho đã được kết hợp" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "Sê ri toàn cục duy nhất" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "Số sê ri cho hàng trong kho phải là duy nhất trong toàn hệ thống" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "Tự động điền số sê ri" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "Tự động điền số sê ri vào biểu mẫu" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "Xóa kho đã hết hàng" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "Mẫu sinh mã theo lô" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "Mẫu tạo mã theo lô mặc định cho hàng trong kho" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "Quá hạn trong kho" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "Bật chức năng quá hạn tồn kho" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "Bán kho quá hạn" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "Cho phép bán hàng kho quá hạn" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "Thời gian hàng cũ trong kho" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "Số ngày hàng trong kho được xác định là cũ trước khi quá hạn" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "Dựng kho quá hạn" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "Cho phép xây dựng với kho hàng quá hạn" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "Kiểm soát sở hữu kho" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "Bật chức năng kiểm soát sở hữu kho với địa điểm và hàng trong kho" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "Biểu tượng địa điểm kho mặc định" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "Biểu tượng địa điểm kho hàng mặc định (trống nghĩa là không có biểu tượng)" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "Hiển thị hàng hóa đã lắp đặt" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "Hiển thị hàng trong kho đã được lắp đặt trên bảng kho" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "Mã tham chiếu đơn đặt bản dựng" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "Bật đơn hàng trả lại" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "Mẫu tham chiếu đơn hàng trả lại" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "Sửa đơn hàng trả lại đã hoàn thành" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt hàng" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "Vận chuyển mặc định đơn đặt hàng" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "Sửa đơn đặt hàng đã hoàn thành" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt mua" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "Sửa đơn đặt mua đã hoàn thành" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "Tự động hoàn thành đơn đặt mua" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "Bật quên mật khẩu" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "Bật đăng ký" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "Bật SSO" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "Cho phép SSO tại trang đăng nhập" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "Bật đăng ký SSO" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "Yêu cầu email" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "Yêu cầu người dùng cung cấp email để đăng ký" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "Người dùng tự động điền SSO" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "Thư 2 lần" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "Mật khẩu 2 lần" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "Các tên miền được phép" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "Nhóm khi đăng ký" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "Bắt buộc MFA" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "Người dùng phải sử dụng bảo mật đa nhân tố." -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "Kiểm tra phần mở rộng khi khởi động" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "Kiểm tra cập nhật plugin" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "Bật tích hợp URL" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "Bật phần mở rộng để thêm định tuyến URL" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "Bật tích hợp điều hướng" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "Bật phần mở rộng để tích hợp thanh định hướng" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "Bật tích hợp ứng dụng" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "Bật phần mở rộng để thêm ứng dụng" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "Cho phép tích hợp lập lịch" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "Bật tích hợp nguồn cấp sự kiện" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "Bật mã dự án" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "Bật mã dự án để theo dõi dự án" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "Chức năng kiểm kê" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "Khoảng thời gian xóa báo cáo" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "Hiện bản dựng quá hạn" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "Người dùng" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "Giá" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "Thân" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "Mã" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "Liên kết" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Tác giả" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "Đọc" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "Tin này đã được đọc?" msgid "Image" msgstr "Hình ảnh" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Đính kèm" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "Tập tin bị thiếu" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "Thiếu liên kết bên ngoài" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Bình luận" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "{verbose_name} đã bị hủy" msgid "A order that is assigned to you was canceled" msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "Mục đã nhận" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "Tên miền rỗng là không được phép." -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Tên miền không hợp lệ: {domain}" @@ -4084,9 +4156,9 @@ msgstr "Địa chỉ email liên hệ" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "Liên hệ" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "Tiền tệ mặc định dùng cho công ty này" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "Địa chỉ" @@ -4228,223 +4300,212 @@ msgstr "Ghi chú nội bộ sử dụng cho chuyển phát nhanh" msgid "Link to address information (external)" msgstr "Liên kết thông tin địa chỉ (bên ngoài)" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Sản phẩm cơ bản" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "Chọn sản phẩm" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "Nhà sản xuất" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "Chọn nhà sản xuất" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "URL cho liên kết sản phẩm của nhà sản xuất bên ngoài" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "Mô tả sản phẩm của nhà sản xuất" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "Tên tham số" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "Giá trị" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "Giá trị tham số" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "Đơn vị" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "Đơn vị tham số" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "Sản phẩm nhà cung cấp" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "Đơn vị đóng gói phải tương thích với đơn vị sản phẩm cơ bản" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "Đơn vị đóng gói phải lớn hơn không" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "Nhà cung cấp" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "Chọn nhà cung cấp" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "Đơn vị quản lý kho nhà cung cấp" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "Chọn sản phẩm của nhà sản xuất" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "URL cho liên kết sản phẩm của nhà cung cấp bên ngoài" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "Ghi chú" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "Đóng gói" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "Đóng gói sản phẩm" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "Số lượng gói" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "nhiều" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "Đặt hàng nhiều" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "Số lượng có sẵn từ nhà cung cấp" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "Sẵn hàng đã được cập nhật" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "Ngày cập nhật cuối thông tin tồn kho" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "Còn hàng" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "Không hoạt động" @@ -4526,17 +4587,17 @@ msgstr "Tải hình ảnh từ URL" msgid "Delete image" msgstr "Xóa ảnh" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "Khách hàng" @@ -4586,7 +4647,7 @@ msgstr "Thêm mới sản phẩm nhà cung cấp" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "Sản phẩm nhà cung cấp mới" @@ -4599,7 +4660,7 @@ msgstr "Sản phẩm nhà sản xuất" msgid "Create new manufacturer part" msgstr "Tạo sản phẩm nhà sản xuất mới" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "Sản phẩm nhà sản xuất mới" @@ -4613,7 +4674,7 @@ msgstr "Kho nhà cung cấp" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "Đơn đặt hàng mới" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "Nhà sản xuất" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "Đặt mua sản phẩm" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "Xóa sản phẩm của nhà sản xuất" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "Sản phẩm nội bộ" @@ -4734,7 +4795,7 @@ msgstr "Chưa có thông tin nhà sản xuất" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "Nhà cung cấp" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "Thông số" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "Thêm thông số" @@ -4791,7 +4852,7 @@ msgstr "Chức năng cho sản phẩm nhà cung cấp" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "Đặt hàng sản phẩm" @@ -4824,12 +4885,12 @@ msgstr "Xóa sản phẩm nhà cung cấp" msgid "No supplier information available" msgstr "Chưa có thông tin nhà cung cấp" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "Kho sản phẩm nhà cung cấp" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "Thêm mới hàng trong kho" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "Hàng trong kho mới" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "Cập nhật độ sẵn sàng sản phẩm" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "Hàng trong kho" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "Dữ liệu" @@ -5010,7 +5071,7 @@ msgstr "Dữ liệu" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "Hợp lệ" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "Không rõ" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "Tổng tiền" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "Trạng thái đặt hàng" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "Không tìm thấy đơn đặt mua phù hợp" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "Đặt hàng" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "Đơn hàng trả lại" @@ -5286,7 +5347,7 @@ msgstr "Mô tả đơn đặt (tùy chọn)" msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" @@ -5310,365 +5371,369 @@ msgstr "Đầu mối liên hệ của đơn đặt này" msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "Tham chiếu nhà cung cấp" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "Mã tham chiếu đơn đặt nhà cung cấp" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "nhận bởi" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "Ngày phát hành" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "Ngày đặt hàng đã phát hành" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "Ngữ cảnh" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "đã bị xóa" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "Đã nhận" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "Có phải người mua hàng muốn mặt hàng này được tích trữ?" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "Không thể gán sản phẩm ảo vào trong đơn đặt bán hàng" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "Đã chuyển" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "Dòng" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "Ngày mà hàng hóa trả lại đã được nhận" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "Đơn đặt không thể bị hủy" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "Cho phép đơn đặt phải đóng lại cùng với các mục dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "Đơn đặt có dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "Đơn đặt là không được mở" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "Tiền tệ giá mua" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "Sản phẩm nhà cung cấp phải được chỉ định" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "Đơn đặt mua phải được chỉ định" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "Nhà cung cấp phải phù hợp với đơn đặt mua" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "Đơn đặt mua phải phù hợp với nhà cung cấp" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "Mục dòng" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "Mục dòng không phù hợp với đơn đặt mua" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "Chọn vị trí đích cho hàng hóa đã nhận" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "Nhập số sê ri cho hàng trong kho đang đến" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Mã vạch" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "Mã vạch đã quét" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "Mã vạch đã được dùng" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "Cần điền số nguyên cho sản phẩm có thể theo dõi" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "Dòng hàng hóa phải được cung cấp" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "Vị trí đích phải được chỉ ra" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "Giá trị mã vạch đã cung cấp phải duy nhất" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "Tiền tệ giá bán" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "Chưa cung cấp thông tin vận chuyển" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "Dòng hàng hóa chưa được gắn với đơn đặt này" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "Số lượng phải là số dương" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "Nhập số sê ri để phân bổ" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "Vận đơn đã được chuyển đi" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "Vận đơn không được gắn với đơn đặt này" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "Không tìm thấy số sê ri sau đây" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "Những số sê ri sau đây đã được phân bổ" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "Dòng riêng biệt đơn hàng trả lại" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "Line item không phù hợp với đơn hàng trả lại" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "Line item đã nhận được" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "Hàng hóa chỉ có thể được nhận theo đơn hàng đang trong tiến trình" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "Tiền tệ giá đồng hạng" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "Mất" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "Đã trả lại" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "Đang tiến hành" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "Trả lại" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "Sửa chữa" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "Thay thế" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "Hoàn tiền" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "Từ chối" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "Chỉnh sửa đơn đặt" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "Hủy đơn đặt" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "Đơn đặt trùng" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "Hủy đơn đặt" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 msgid "Issue Order" msgstr "Vấn đề đơn hàng" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "Đánh dấu đơn đặt đã hoàn thành" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "Đơn đặt hoàn thành" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "Ảnh thu nhỏ sản phẩm nhà cung cấp" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "Tham chiếu đơn đặt" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "Mô tả đơn đặt" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "Chưa có thông tin nhà cung cấp" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "Mục dòng hoàn thành" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "Chưa hoàn thành" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "Đã cấp" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "Tổng chi phí" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "Không thể tính tổng chi phí" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "Mã QR đơn đặt mua" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "Liên kết mã vạch đến đơn đặt mua" @@ -6056,12 +6127,12 @@ msgstr "Lựa chọn trùng lặp" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "Xóa hàng" @@ -6162,31 +6233,31 @@ msgstr "In báo cáo đơn hàng trả lại" msgid "Print packing list" msgstr "In danh sách đóng gói" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "Mã khách hàng" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "Tổng chi phí" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "Mã QR đơn hàng trả lại" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "Chi tiết đơn đặt" msgid "Print sales order report" msgstr "In báo cáo đơn hàng bán" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "Mục vận chuyển" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "Hoàn thành đơn bán hàng" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "Chưa phân bổ đầy đủ đơn bán hàng" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "Vận đơn đã hoàn thành" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "Vận chuyển đang chờ xử lý" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "Chức năng" @@ -6272,21 +6343,21 @@ msgstr "Cập nhật {part} giá đơn vị đến {price}" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "Phiên bản" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "Từ khóa" @@ -6298,7 +6369,7 @@ msgstr "Ảnh sản phẩm" msgid "Category ID" msgstr "ID danh mục" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "Tên danh mục" @@ -6311,11 +6382,11 @@ msgstr "ID vị trí mặc định" msgid "Default Supplier ID" msgstr "ID nhà cung ứng mặc định" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Biến thể của" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Kho tối thiểu" @@ -6323,19 +6394,19 @@ msgstr "Kho tối thiểu" msgid "Used In" msgstr "Sử dụng trong" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "Đang dựng" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "Chi phí tối đa" @@ -6347,19 +6418,19 @@ msgstr "ID cha" msgid "Parent Name" msgstr "Tên cha" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "Đưỡng dẫn danh mục" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "Nguyên liệu" @@ -6376,126 +6447,130 @@ msgstr "ID hàng hóa BOM" msgid "Parent IPN" msgstr "IPN cha" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Giá thấp nhất" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Giá cao nhất" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "Đơn đặt mua vào" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "Đơn hàng bán ra" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "Kho sản xuất bởi Đơn đặt bản dựng" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "Kho được yêu cầu cho đơn đặt bản dựng" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "Xác minh toàn bộ hóa đơn vật liệu" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "Tùy chọn này phải được chọn" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "Danh mục" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "Điểm bán mặc định" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Tổng số lượng" @@ -6504,784 +6579,785 @@ msgstr "Tổng số lượng" msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "Danh mục sản phẩm" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Vị trí mặc định cho sản phẩm trong danh mục này" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Cấu trúc" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Hàng hóa không được gán trực tiếp vào danh mục có cấu trúc nhưng có thể được gán vào danh mục con." -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "Từ khóa mặc định" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "Biểu tượng" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Bạn không thể thay đổi cấu trúc nhóm sản phẩm này vì một số sản phẩm đã được gắn với nó rồi!" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "Lựa chọn sai cho sản phẩm cha" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Không thể dùng sản phẩm '{self}' trong BOM cho '{parent}' (đệ quy)" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Sản phẩm '{parent}' được dùng trong BOM cho '{self}' (đệ quy)" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN phải phù hợp mẫu biểu thức chính quy {pattern}" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "Hàng trong kho với số sê ri này đã tồn tại" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN trùng lặp không được cho phép trong thiết lập sản phẩm" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "Tên sản phẩm" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "Là Mẫu" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "Sản phẩm này có phải là sản phẩm mẫu?" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "Đây có phải là 1 biến thể của sản phẩm khác?" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "Mô tả (không bắt buộc)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "Hàng hóa này sẽ được cất vào đâu?" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "Nhà cung ứng mặc định" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "Nhà cung ứng sản phẩm mặc định" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "Hết hạn mặc định" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "Đơn vị đo cho sản phẩm này" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "Sản phẩm này có thể được dựng từ sản phẩm khác?" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "Sản phẩm này có thể dùng để dựng các sản phẩm khác?" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "Sản phẩm này có đang theo dõi cho hàng hóa duy nhất?" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "Sản phẩm này có thể mua được từ nhà cung ứng bên ngoài?" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "Sản phẩm này có thể được bán cho khách hàng?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "Đây là sản phẩm ảo, ví dụ như sản phẩm phần mềm hay bản quyền?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "Giá trị tổng kiểm BOM" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "Giá trị tổng kiểm BOM đã được lưu" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "BOM kiểm tra bởi" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "Ngày kiểm tra BOM" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "Tạo người dùng" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "Ghi đề chi phí tối thiểu" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "Ghi đề chi phí tối đa" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "Ngày" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "Đã bật" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "Cấp độ" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" @@ -7289,338 +7365,358 @@ msgstr "Đã tồn tại mối quan hệ trùng lặp" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "Phụ mục" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "Loại tiền mua hàng của hàng hóa này" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "Chưa chọn sản phẩm" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "Chọn danh mục" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "Sản phẩm gốc" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "Chọn sản phẩm gốc để nhân bản" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "Sao chép ảnh" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "Sao chép BOM" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "Sao chép thông số" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "Sao chép thông tin tham số từ sản phẩm gốc" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "Sao chép ghi chú" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "Sao chép ghi chú từ sản phẩm gốc" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "Số liệu tồn kho ban đầu" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào." -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "Vị trí kho ban đầu" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "Mã số nhà sản xuất" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Nhân bản sản phẩm" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "Số liệu kho ban đầu" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "Thông tin nhà cung cấp" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "Sao chép thông số nhóm hàng" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "Ảnh hiện có" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "Tên tệp của ảnh sản phẩm hiện hữu" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "Tệp hình ảnh không tồn tại" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Hạn chế báo cáo kiểm kê với sản phẩm riêng biệt và sản phẩm biến thể bất kỳ" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Hạn chế báo cáo kiểm kê với danh mục sản phẩm riêng biệt và danh mục con bất kỳ" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Hạn chế báo cáo kiểm kê với vị trí kho riêng biệt và vị trí con bất kỳ" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "Ngoại trừ kho bên ngoài" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "Loại trừ hàng trong kho của vị trí bên ngoài" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "Tạo báo cáo" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "Tạo tệp báo cáo chứa dữ liệu kiểm kê đã tính toán" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "Cập nhật sản phẩm" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "Cập nhật sản phẩm cụ thể với dữ liệu kiểm kê đã tính" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "Chức năng kiểm kê chưa được bật" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "Giá trị tính toán ghi đè cho giá tối thiểu" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "Tiền tế giá tối thiểu" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "Giá trị tính toán ghi đè cho giá tối đa" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "Tiền tế giá tối đa" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "Cập nhật" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "Cập nhật giá cho sản phẩm này" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "Giá tối thiểu không được lớn hơn giá tối đa" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "Có thể dựng" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "Dọn dẹp BOM đang tồn tại" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "Xóa mục BOM đang tồn tại trước khi tải lên" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "Chưa chỉ ra cột sản phẩm" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "Tìm thấy nhiều sản phẩm phù hợp" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "Không tìm thấy sản phẩm nào" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "Sản phẩm không được chỉ định như là một thành phần" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "Chưa cung cấp số lượng" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "Số lượng không hợp lệ" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "Buộc phải nhập ít nhất một mục BOM" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "Tổng số lượng" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "Thực hiện kiểm kê cho danh mục hàng hóa này" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "Bạn đã được đăng ký nhận thông báo cho danh mục này" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "Đăng ký nhận thông báo cho danh mục này" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "Chức năng danh mục" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "Sửa danh mục" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "Sửa danh mục" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "Xóa danh mục" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "Xóa danh mục" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "Danh mục sản phẩm cấp đầu" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "Sản phẩm (bao gồm các phụ mục)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "Tạo sản phẩm mới" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "Sản phẩm mới" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "Thông số phụ tùng" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "Thêm danh mục sản phẩm mới" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "Danh mục mới" @@ -7772,7 +7868,7 @@ msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "Kiểm kê" @@ -7784,101 +7880,105 @@ msgstr "Mẫu kiểm thử sản phẩm" msgid "Add Test Template" msgstr "Thêm mẫu kiểm thử" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "Phân bổ đơn hàng bán" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "Ghi chú sản phẩm" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "Biến thể sản phẩm" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "Tạo biến thể mới" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "Biến thể mới" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "Thêm tham số mới" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "Sản phẩm liên quan" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "Thêm liên quan" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "Hóa đơn nguyên vật liệu" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "Chức năng xuất dữ liệu" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "Xuất BOM" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "Báo cáo in BOM" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "Chức năng BOM" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "Tải lên BOM" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "Xác minh BOM" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "Thêm mục BOM" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "Lắp ráp" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "Bản dựng sản phẩm" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "Phân bổ đơn hàng bản dựng" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "Nhà cung cấp sản phẩm" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "Nhà sản xuất sản phẩm" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "Tải về mẫu nhập liệu sản phẩm" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "Định dạng" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "Chọn định dạng tệp" @@ -7937,7 +8037,7 @@ msgstr "Đăng ký nhận thông báo về sản phẩm này" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "In tem nhãn" @@ -7947,7 +8047,7 @@ msgstr "Hiện thông tin giá cả" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "Chức năng kho" @@ -7959,7 +8059,7 @@ msgstr "Đếm kho sản phẩm" msgid "Transfer part stock" msgstr "Chuyển kho sản phẩm" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "Chức năng sản phẩm" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "Cấp kho tối thiểu" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "Biến thể" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "Kiện hàng" @@ -8158,7 +8258,7 @@ msgstr "Ghi đè định giá sản phẩm" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "Sửa" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "Cập nhật lần cuối" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "Cập nhập giá bán" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "Hết hàng" @@ -8332,100 +8432,108 @@ msgstr "Chưa chỉ ra hành động cụ thể" msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "Không tìm thấy thông tin sản phẩm phù hợp" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "Sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "Không phù hợp với mã vạch nhà cung cấp" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "Kho không đủ hạn mức khả dụng" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "Không đủ thông tin" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Tìm thấy nhiều đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "Không có đơn đặt mua phù hợp với '{order}'" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "Đơn đặt mua không phù hợp với nhà cung cấp" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "Không tìm thấy mục dòng chờ xử lý cho sản phẩm nhà cung cấp" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "Buộc phải nhập thông tin khác để nhận mục dòng này" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "Mục dòng đơn đặt mua đã nhận" @@ -8433,51 +8541,59 @@ msgstr "Mục dòng đơn đặt mua đã nhận" msgid "Scanned barcode data" msgstr "Thông tin mã vạch đã quét" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order is not pending" msgstr "Đơn đặt mua không chờ xử lý" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 msgid "PurchaseOrder to receive items against" msgstr "Đơn đặt mua để nhận hàng hóa" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "Đơn đặt mua vẫn chưa được thực hiện" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "Địa điểm để nhận hàng hóa vào bên trong" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "Không thể chọn một địa điểm có cấu trúc" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "Số lượng cần phân bổ" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "Mã vạch InvenTree" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "Cung cấp hỗ trợ gốc cho mã vạch" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "Cung cấp hỗ trợ gốc cho mã vạch" msgid "InvenTree contributors" msgstr "Người đóng góp InvenTree" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Thông báo InvenTree" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "Là phần bổ sung hoạt động" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "Đã cài đặt" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "Chưa cung cấp đối tượng hợp lệ cho bản mẫu" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "Nhà cung cấp đã bị xóa" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "Đơn giá" @@ -9173,8 +9313,10 @@ msgstr "Bảng liệt kê mở rộng" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "Tổng cộng" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "Kết quả kiểm tra" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "Thử nghiệm" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "Kết quả" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "Không có kết quả" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "Mục đã cài đặt" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "Sê-ri" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "Tệp tin tài sản không tồn tại" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "Không tìm thấy tệp hình ảnh" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" @@ -9246,8 +9388,8 @@ msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" msgid "Location ID" msgstr "ID địa điểm" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "Đường dẫn địa điểm" @@ -9279,7 +9421,7 @@ msgstr "Tên nhà cung cấp" msgid "Customer ID" msgstr "ID Khách hàng" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Đã cài đặt trong" @@ -9304,9 +9446,9 @@ msgstr "Cần xem xét" msgid "Delete on Deplete" msgstr "Xóa khi thiếu hụt" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "Ngày hết hạn" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "Ngày hết hạn trước đó" msgid "Expiry date after" msgstr "Ngày hết hạn sau đó" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được đ msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "Loại vị trí kho hàng" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "Loại vị trí kho hàng" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Biểu tượng mặc định cho vị trí không được đặt biểu tượng (tùy chọn)" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Chủ sở hữu" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "Chọn chủ sở hữu" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Bên ngoài" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "Đây là vị trí kho bên ngoài" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Loại vị trí" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "Loại vị trí kho hàng của địa điểm này" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Bạn không thể chuyển đổi vị trí kho hàng này thành cấu trúc vì đã có hàng hóa trong kho được đặt vào bên trong nó!" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "Không thể đặt hàng trong kho vào trong địa điểm kho có cấu trúc!" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "Không thể tạo hàng hóa trong kho cho sản phẩm ảo" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Loại sản phẩm ('{self.supplier_part.part}') phải là {self.part}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "Số lượng phải là 1 cho hàng hóa với số sê ri" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Số sê ri không thể đặt được nếu số lượng lớn hơn 1" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "Hàng hóa không thể thuộc về chính nó" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "Hàng hóa phải có 1 tham chiếu bản dựng nếu is_building=True" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "Tham chiếu bản dựng không thể trỏ vào cùng một đối tượng sản phẩm" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "Hàng trong kho cha" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "Sản phẩm cơ bản" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho này" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "Mục này đã được cài đặt trong mục khác?" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "Số lượng tồn kho" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "Bản dựng nguồn" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "Bản dựng cho hàng hóa này" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Tiêu thụ bởi" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "Đơn đặt bản dựng đã dùng hàng hóa này" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "Đơn đặt mua nguồn" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "Đơn đặt mua cho hàng hóa này" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "Đơn hàng bán đích" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ngày hết hạn của hàng hóa này. Kho sẽ được nhắc tình trạng hết hạn sau ngày này" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "Xóa khi thiếu hụt" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "Xóa hàng trong kho này khi kho hàng bị thiếu hụt" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "Giá mua riêng lẻ tại thời điểm mua" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "Đã chuyển đổi sang sản phẩm" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "Chưa đặt sản phẩm thành có thể theo dõi" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "Số lượng phải là số nguyên" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "Số sêri phải là một danh sách dãy số nguyên" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "Số lượng không khớp với số sêri" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "Số sêri đã tồn tại" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "Hàng trong kho đã được gán vào đơn hàng bán" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "Hàng trong kho chứa hàng hóa khác" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Sử dụng kích thước đóng gói khi thêm: Số lượng được định nghĩa là số của gói" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "Đã hết hạn" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "Mục con" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "Giá mua của mặt hàng, theo đơn vị hoặc gói" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "Nhập số của mặt hàng cần tạo số nối tiếp" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "Điền số sêri cho hàng hóa mới" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "Vị trí kho đích" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "Trường ghi chú tùy chọn" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "Không thể gán số sêri cho sản phẩm này" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "Chọn mặt hàng để lắp đặt" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "Số lượng để cài đặt" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "Nhập số lượng hàng hóa để cài đặt" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "Thêm ghi chú giao dịch (tùy chọn)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "Số lượng cần cài đặt phải ít nhất là 1" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "Mặt hàng không khả dụng" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "Sản phẩm đã chọn không có trong hóa đơn vật liệu" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "Số lượng cần lắp đặt phải không vượt quá số lượng đang có" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "Vị trí đích cho hàng hóa bị gỡ bỏ" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "Chọn sản phẩm để chuyển đổi mặt hàng vào bên trong" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "Sản phẩm đã chọn không phải là tùy chọn hợp lệ để chuyển đổi" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Không thể chuyển đổi hàng hóa với sản phẩm nhà cung cấp đã gán" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "Vị trí đích dành cho hàng hóa trả lại" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "Chọn mặt hàng để đổi trạng thái" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "Kho phụ" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "Sản phẩm phải có thể bán được" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "Hàng hóa được phân bổ đến một đơn hàng bán" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "Khách hàng được gán vào các mặt hàng" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "Công ty đã chọn không phải là khách hàng" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "Ghi chú gộp kho" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "Cho phép nhiều nhà cung không khớp" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "Cho phép trạng thái không khớp" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "Cần cung cấp ít nhất hai mặt hàng" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "Giá trị khóa chính mặt hàng" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "Mã trạng thái mặt hàng" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "Ghi chú giao dịch kho" @@ -9971,7 +10117,7 @@ msgstr "Đã cách ly" msgid "Legacy stock tracking entry" msgstr "Mục theo dõi kho cổ điển" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "Kho hàng đã được khởi tạo" @@ -10027,7 +10173,7 @@ msgstr "Tách từ mục cha" msgid "Split child item" msgstr "Tách mục con" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "Kho hàng đã được gộp" @@ -10047,7 +10193,7 @@ msgstr "Đầu ra đơn đặt bản dựng đã hoàn thành" msgid "Build order output rejected" msgstr "Đầu ra đơn đặt bản dựng bị từ chối" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "Tiêu hao bởi đơn đặt bản dựng" @@ -10108,7 +10254,7 @@ msgstr "Ghi chú tại kho hàng" msgid "Installed Stock Items" msgstr "Hàng hóa đã lắp đặt" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "Lắp đặt hàng hóa trong kho" @@ -10116,7 +10262,7 @@ msgstr "Lắp đặt hàng hóa trong kho" msgid "Delete all test results for this stock item" msgstr "Xóa toàn bộ kết quả kiểm thử cho kho hàng này" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "Quét vào điểm bán" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "Chức năng in" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "Chức năng điều chỉnh kho" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "Đếm hàng" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "Thêm hàng" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "Xóa hàng hóa" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "Sắp xếp hàng hóa" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "Chuyển giao hàng" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "Chỉ định cho khách hàng" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "Xóa mặt hàng" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "Dựng" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "Bạn không thuộc danh sách chủ sở hữu hàng hóa này. Mặt hàng này không thể sửa đổi." #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "Chỉ đọc" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "Điều hướng đến số sêri tiếp" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "Không có vị trí nào được đặt" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "Chưa thực hiện kiểm kê" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "Thao tác này không thể khôi phục lại một cách dễ dàng" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "Tạo hàng hóa tuần tự từ mặt hàng này." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Chọn số lượng cần tuần tự hóa và số sêri duy nhất." -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "Thực hiện kiểm kê cho vị trí kho này" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "Xác định vị trí kho" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "Quét các mặt hàng vào vị trí kho này" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "Quét vào trong mặt hàng" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "Quét kho chứa vào trong vị trí kho này" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "Quét vào trong bộ chứa" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "In báo cáo vị trí" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "Chức năng vị trí" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "Sửa vị trí" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "Xóa vị trí" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "Vị trí kho cấp đầu" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "Chủ sở hữu vị trí" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "Bạn không thuộc danh sách chủ sở hữu của vị trí này. Vị trí kho này không thể sửa được." -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "Tạo mới vị trí kho" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "Vị trí mới" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "Đường dẫn cài đặt" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "Gắn liền" @@ -10796,7 +10942,7 @@ msgstr "Đây là phần bổ sung có sẵn nên không thể tắt được" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "Mẫu" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "Xóa" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "Loại vị trí mới" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "Gửi báo cáo lỗi" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "sao chép đến bảng tạm" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "Sản phẩm sau còn ít hàng trong kho yêu cầu" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "Số lượng bắt buộc" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "Nhấp chuột vào liên kết dưới đây để xem sản phẩm này" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "Số lượng tối thiểu" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "Lỗi biểu mẫu tồn tại" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "Sẽ tải thông báo ở đây" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "Thêm" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "Thiết lập email" msgid "Email settings not configured" msgstr "Chưa cấu hình thiết lập email" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "Có" diff --git a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po index a5a0510d47..83fa163d0e 100644 --- a/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-17 13:47+0000\n" -"PO-Revision-Date: 2024-07-17 16:38\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" +"PO-Revision-Date: 2024-08-07 21:47\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -56,29 +56,30 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:826 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 #: company/templates/company/manufacturer_part_sidebar.html:11 #: company/templates/company/sidebar.html:37 -#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1305 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "" @@ -91,118 +92,122 @@ msgstr "" msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "" @@ -366,158 +371,158 @@ msgstr "" msgid "Email" msgstr "" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 msgid "Error running plugin validation" msgstr "" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:588 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "" -#: InvenTree/models.py:775 build/models.py:244 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:516 company/models.py:817 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -567,16 +572,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:791 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -662,7 +667,7 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "" @@ -726,59 +731,59 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:881 company/serializers.py:390 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -789,72 +794,72 @@ msgstr "" msgid "Build Orders" msgstr "" -#: build/models.py:129 +#: build/models.py:135 msgid "Assembly BOM has not been validated" msgstr "" -#: build/models.py:136 +#: build/models.py:142 msgid "Build order cannot be created for an inactive part" msgstr "" -#: build/models.py:143 +#: build/models.py:149 msgid "Build order cannot be created for an unlocked part" msgstr "" -#: build/models.py:157 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "" -#: build/models.py:168 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:174 +#: build/models.py:180 msgid "Build order part cannot be changed" msgstr "" -#: build/models.py:235 +#: build/models.py:241 msgid "Build Order Reference" msgstr "" -#: build/models.py:236 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "" -#: build/models.py:247 +#: build/models.py:253 msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:255 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" -#: build/models.py:256 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:261 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1036 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -866,184 +871,184 @@ msgstr "" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "" -#: build/models.py:269 +#: build/models.py:275 msgid "Select part to build" msgstr "" -#: build/models.py:274 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "" -#: build/models.py:278 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:283 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "" -#: build/models.py:287 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "" -#: build/models.py:292 +#: build/models.py:298 msgid "Destination Location" msgstr "" -#: build/models.py:296 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "" -#: build/models.py:300 +#: build/models.py:306 msgid "Build Quantity" msgstr "" -#: build/models.py:303 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "" -#: build/models.py:307 +#: build/models.py:313 msgid "Completed items" msgstr "" -#: build/models.py:309 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:313 +#: build/models.py:319 msgid "Build Status" msgstr "" -#: build/models.py:317 +#: build/models.py:323 msgid "Build status code" msgstr "" -#: build/models.py:326 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:641 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "" -#: build/models.py:330 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "" -#: build/models.py:333 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "" -#: build/models.py:337 +#: build/models.py:343 msgid "Target completion date" msgstr "" -#: build/models.py:338 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:341 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "" -#: build/models.py:347 +#: build/models.py:353 msgid "completed by" msgstr "" -#: build/models.py:355 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "" -#: build/models.py:356 +#: build/models.py:362 msgid "User who issued this build order" msgstr "" -#: build/models.py:364 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "" -#: build/models.py:365 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "" -#: build/models.py:370 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "" -#: build/models.py:371 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "" -#: build/models.py:375 +#: build/models.py:381 msgid "Build Priority" msgstr "" -#: build/models.py:378 +#: build/models.py:384 msgid "Priority of this build order" msgstr "" -#: build/models.py:385 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1051,66 +1056,66 @@ msgstr "" msgid "Project Code" msgstr "" -#: build/models.py:386 +#: build/models.py:392 msgid "Project code for this build order" msgstr "" -#: build/models.py:619 build/models.py:684 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:641 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "" -#: build/models.py:647 +#: build/models.py:667 msgid "A build order has been completed" msgstr "" -#: build/models.py:873 build/models.py:958 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "" -#: build/models.py:876 +#: build/models.py:958 msgid "Build output is already completed" msgstr "" -#: build/models.py:879 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:962 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:470 -#: order/serializers.py:636 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:967 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1027 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1368 +#: build/models.py:1450 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1393 +#: build/models.py:1475 msgid "Build object" msgstr "" -#: build/models.py:1407 build/models.py:1663 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1413 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1120,526 +1125,551 @@ msgstr "" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "" -#: build/models.py:1408 +#: build/models.py:1490 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1488 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1497 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1507 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1513 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1519 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1578 +#: build/models.py:1660 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1650 build/serializers.py:856 order/serializers.py:1257 -#: order/serializers.py:1278 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "" -#: build/models.py:1651 +#: build/models.py:1733 msgid "Source stock item" msgstr "" -#: build/models.py:1664 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1672 +#: build/models.py:1754 msgid "Install into" msgstr "" -#: build/models.py:1673 +#: build/models.py:1755 msgid "Destination stock item" msgstr "" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 msgid "Project Code Label" msgstr "" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:303 order/serializers.py:649 order/serializers.py:1417 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:625 order/serializers.py:749 order/serializers.py:1744 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "" -#: build/serializers.py:310 +#: build/serializers.py:311 msgid "Stock location for build output" msgstr "" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:340 +#: build/serializers.py:341 msgid "Serial numbers must be provided for trackable parts" msgstr "" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:451 +#: build/serializers.py:452 msgid "Stock location for scrapped outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:458 msgid "Discard Allocations" msgstr "" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 msgid "Reason for scrapping build output(s)" msgstr "" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:657 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:621 +#: build/serializers.py:649 msgid "Consume Allocated Stock" msgstr "" -#: build/serializers.py:622 +#: build/serializers.py:650 msgid "Consume any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1320 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:779 +#: build/serializers.py:810 msgid "Build Line" msgstr "" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:833 +#: build/serializers.py:864 msgid "Build Line Item" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:910 order/serializers.py:1311 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:947 order/serializers.py:1563 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 msgid "Supplier Part Number" msgstr "" -#: build/serializers.py:1135 company/models.py:501 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 msgid "Build Reference" msgstr "" -#: build/serializers.py:1138 +#: build/serializers.py:1177 msgid "BOM Reference" msgstr "" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 -#: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 -#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 -#: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 -#: templates/js/translated/sales_order.js:315 -#: templates/js/translated/sales_order.js:1647 -#: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 -msgid "Serial Number" -msgstr "" - -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 -msgid "Allocated Quantity" -msgstr "" - -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 -msgid "Available Quantity" -msgstr "" - -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 msgid "Part Description" msgstr "" -#: build/serializers.py:1229 +#: build/serializers.py:1187 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1188 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1191 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 +#: stock/serializers.py:151 stock/templates/stock/item_base.html:311 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1274 msgid "Part Category ID" msgstr "" -#: build/serializers.py:1230 +#: build/serializers.py:1275 msgid "Part Category Name" msgstr "" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "" -#: build/serializers.py:1270 +#: build/serializers.py:1315 msgid "Available Substitute Stock" msgstr "" -#: build/serializers.py:1271 +#: build/serializers.py:1316 msgid "Available Variant Stock" msgstr "" -#: build/serializers.py:1272 +#: build/serializers.py:1317 msgid "Total Available Stock" msgstr "" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 msgid "External Stock" msgstr "" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "" @@ -1647,16 +1677,21 @@ msgstr "" msgid "Production" msgstr "" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:509 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "" @@ -1684,8 +1719,8 @@ msgstr "" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1696,7 +1731,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1707,7 +1742,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1720,7 +1755,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1744,88 +1779,100 @@ msgid "Edit Build" msgstr "" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "" +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +msgid "Isueue Build" +msgstr "" + +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1835,31 +1882,39 @@ msgstr "" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 msgid "Build Order QR Code" msgstr "" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 msgid "Link Barcode to Build Order" msgstr "" @@ -1875,8 +1930,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "" @@ -1890,21 +1945,21 @@ msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "" @@ -1913,8 +1968,8 @@ msgid "No target date set" msgstr "" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "" @@ -1987,7 +2042,11 @@ msgstr "" msgid "Completed Build Outputs" msgstr "" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -1997,25 +2056,25 @@ msgstr "" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 msgid "All lines have been fully allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "" @@ -2037,15 +2096,20 @@ msgstr "" msgid "Incomplete Outputs" msgstr "" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:692 msgid "Is Link" msgstr "" -#: common/api.py:698 +#: common/api.py:700 msgid "Is File" msgstr "" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2103,1654 +2167,1662 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 msgid "Project description" msgstr "" -#: common/models.py:153 +#: common/models.py:166 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1227 +#: common/models.py:1240 msgid "Pending migrations" msgstr "" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 msgid "List of supported currency codes" msgstr "" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 msgid "Barcode Show Data" msgstr "" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 -msgid "Part Revisions" -msgstr "" - -#: common/models.py:1407 -msgid "Enable revision field for Part" -msgstr "" - -#: common/models.py:1412 -msgid "Assembly Revision Only" -msgstr "" - -#: common/models.py:1413 -msgid "Only allow revisions for assembly parts" -msgstr "" - -#: common/models.py:1418 -msgid "Allow Deletion from Assembly" -msgstr "" - #: common/models.py:1419 -msgid "Allow deletion of parts which are used in an assembly" +msgid "Barcode Generation Plugin" msgstr "" -#: common/models.py:1424 -msgid "IPN Regex" +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" msgstr "" #: common/models.py:1425 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1426 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1431 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1432 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1437 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1438 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1443 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1674 +#: common/models.py:1694 msgid "Log Report Errors" msgstr "" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 msgid "Require Responsible Owner" msgstr "" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 msgid "Require Active Part" msgstr "" -#: common/models.py:1802 +#: common/models.py:1823 msgid "Prevent build order creation for inactive parts" msgstr "" -#: common/models.py:1807 +#: common/models.py:1828 msgid "Require Locked Part" msgstr "" -#: common/models.py:1808 +#: common/models.py:1829 msgid "Prevent build order creation for unlocked parts" msgstr "" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 msgid "Mark Shipped Orders as Complete" msgstr "" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 msgid "Auto Complete Purchase Orders" msgstr "" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 msgid "Enable project codes" msgstr "" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2098 +#: common/models.py:2119 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 msgid "Search Return Orders" msgstr "" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 msgid "Regex Search" msgstr "" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:88 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:508 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:507 company/models.py:808 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3760,94 +3832,94 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3003 +#: common/models.py:3032 msgid "Image file" msgstr "" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 msgid "Target model type for this image" msgstr "" -#: common/models.py:3019 +#: common/models.py:3048 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3041 +#: common/models.py:3070 msgid "Custom Unit" msgstr "" -#: common/models.py:3062 +#: common/models.py:3091 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3077 +#: common/models.py:3106 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3096 +#: common/models.py:3125 msgid "Unit name" msgstr "" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3243 +#: common/models.py:3272 msgid "Attachment comment" msgstr "" -#: common/models.py:3259 +#: common/models.py:3288 msgid "Upload date" msgstr "" -#: common/models.py:3260 +#: common/models.py:3289 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size" msgstr "" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -3869,7 +3941,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -3957,27 +4029,27 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 msgid "No attachment model type provided" msgstr "" -#: common/validators.py:39 +#: common/validators.py:41 msgid "Invalid attachment model type" msgstr "" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" @@ -4084,9 +4156,9 @@ msgstr "" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "" @@ -4131,9 +4203,9 @@ msgid "Default currency used for this company" msgstr "" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "" @@ -4228,223 +4300,212 @@ msgstr "" msgid "Link to address information (external)" msgstr "" -#: company/models.py:470 company/models.py:582 company/models.py:801 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:482 company/models.py:769 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:484 company/models.py:771 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "" -#: company/models.py:493 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "" -#: company/models.py:494 +#: company/models.py:499 msgid "Select manufacturer" msgstr "" -#: company/models.py:500 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:527 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:508 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:517 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "" -#: company/models.py:570 +#: company/models.py:575 msgid "Manufacturer Part Parameter" msgstr "" -#: company/models.py:589 +#: company/models.py:594 msgid "Parameter name" msgstr "" -#: company/models.py:595 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "" -#: company/models.py:596 +#: company/models.py:601 msgid "Parameter value" msgstr "" -#: company/models.py:603 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "" -#: company/models.py:604 +#: company/models.py:609 msgid "Parameter units" msgstr "" -#: company/models.py:657 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: order/serializers.py:462 stock/models.py:776 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 #: stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "" -#: company/models.py:709 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:716 +#: company/models.py:726 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:730 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:779 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "" -#: company/models.py:780 +#: company/models.py:790 msgid "Select supplier" msgstr "" -#: company/models.py:786 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:792 +#: company/models.py:802 msgid "Is this supplier part active?" msgstr "" -#: company/models.py:802 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "" -#: company/models.py:809 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:818 +#: company/models.py:828 msgid "Supplier part description" msgstr "" -#: company/models.py:825 company/templates/company/supplier_part.html:187 -#: order/serializers.py:669 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "" -#: company/models.py:834 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:835 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:842 company/templates/company/supplier_part.html:160 -#: order/serializers.py:661 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "" - -#: company/models.py:843 +#: company/models.py:853 msgid "Part packaging" msgstr "" -#: company/models.py:848 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:850 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:869 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:870 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:882 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:888 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:889 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1017 +#: company/models.py:1027 msgid "Supplier Price Break" msgstr "" @@ -4456,7 +4517,7 @@ msgstr "" msgid "Company Name" msgstr "" -#: company/serializers.py:388 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4467,8 +4528,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4526,17 +4587,17 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "" @@ -4586,7 +4647,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "" @@ -4599,7 +4660,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "" @@ -4613,7 +4674,7 @@ msgstr "" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4636,7 +4697,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -4708,7 +4769,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "" @@ -4723,8 +4784,8 @@ msgid "Delete manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:535 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "" @@ -4734,7 +4795,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -4743,12 +4804,12 @@ msgstr "" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" @@ -4759,7 +4820,7 @@ msgid "Manufacturer Part Notes" msgstr "" #: company/templates/company/manufacturer_part.html:225 -#: templates/js/translated/part.js:1428 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "" @@ -4791,7 +4852,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "" @@ -4824,12 +4885,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:524 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -4838,13 +4899,13 @@ msgid "Supplier Part Stock" msgstr "" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -4879,16 +4940,16 @@ msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "" @@ -5002,7 +5063,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:503 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" @@ -5010,7 +5071,7 @@ msgstr "" msgid "Errors" msgstr "" -#: importer/models.py:507 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5110,7 +5171,7 @@ msgstr "" msgid "Connected" msgstr "" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5202,21 +5263,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5224,41 +5285,41 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 msgid "Order Complete" msgstr "" -#: order/api.py:444 +#: order/api.py:450 msgid "Order Pending" msgstr "" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 msgid "Return Order" msgstr "" @@ -5286,7 +5347,7 @@ msgstr "" msgid "Select project code for this order" msgstr "" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5310,365 +5371,369 @@ msgstr "" msgid "Company address for this order" msgstr "" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 msgid "Order is already complete" msgstr "" -#: order/models.py:1037 +#: order/models.py:1081 msgid "Order is already cancelled" msgstr "" -#: order/models.py:1041 +#: order/models.py:1085 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 msgid "Purchase Order Line Item" msgstr "" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 msgid "Purchase Order Extra Line" msgstr "" -#: order/models.py:1541 +#: order/models.py:1616 msgid "Sales Order Line Item" msgstr "" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 msgid "Sales Order Shipment" msgstr "" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1428 -#: order/serializers.py:1538 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 msgid "Sales Order Extra Line" msgstr "" -#: order/models.py:1866 +#: order/models.py:1941 msgid "Sales Order Allocation" msgstr "" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1305 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 msgid "Return Order reference" msgstr "" -#: order/models.py:2068 +#: order/models.py:2148 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 msgid "Return Order Line Item" msgstr "" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 msgid "Select item to return from customer" msgstr "" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 msgid "Return Order Extra Line" msgstr "" @@ -5676,208 +5741,208 @@ msgstr "" msgid "Completed Lines" msgstr "" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:321 order/serializers.py:1321 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1331 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:477 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:498 +#: order/serializers.py:523 msgid "Auto Pricing" msgstr "" -#: order/serializers.py:500 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:510 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:516 +#: order/serializers.py:541 msgid "Merge Items" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:531 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:564 msgid "Internal Part Name" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:566 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:610 order/serializers.py:1399 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:616 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:626 order/serializers.py:750 order/serializers.py:1745 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:650 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:670 +#: order/serializers.py:695 msgid "Additional note for incoming stock items" msgstr "" -#: order/serializers.py:677 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:678 +#: order/serializers.py:703 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:694 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:718 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:766 order/serializers.py:1761 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:782 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:793 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1147 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1208 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1269 order/serializers.py:1408 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1288 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1418 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1440 order/serializers.py:1546 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1443 order/serializers.py:1549 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1490 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1497 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1715 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1721 +#: order/serializers.py:1737 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1724 +#: order/serializers.py:1740 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1753 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1836 +#: order/serializers.py:1852 msgid "Line price currency" msgstr "" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 msgid "Return" msgstr "" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 msgid "Replace" msgstr "" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 msgid "Reject" msgstr "" @@ -5922,87 +5987,93 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 -msgid "Issue Order" +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" msgstr "" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 -msgid "Mark order as complete" +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" msgstr "" #: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 msgid "Supplier part thumbnail" msgstr "" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 msgid "Purchase Order QR Code" msgstr "" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 msgid "Link Barcode to Purchase Order" msgstr "" @@ -6056,12 +6127,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "" @@ -6162,31 +6233,31 @@ msgstr "" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 msgid "Return Order QR Code" msgstr "" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 msgid "Link Barcode to Return Order" msgstr "" @@ -6198,36 +6269,36 @@ msgstr "" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 msgid "Mark As Shipped" msgstr "" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 msgid "Sales Order QR Code" msgstr "" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 msgid "Link Barcode to Sales Order" msgstr "" @@ -6241,8 +6312,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6272,21 +6343,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "" @@ -6298,7 +6369,7 @@ msgstr "" msgid "Category ID" msgstr "" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6311,11 +6382,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" @@ -6323,19 +6394,19 @@ msgstr "" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6347,19 +6418,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "" @@ -6376,126 +6447,130 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 msgid "Top Level" msgstr "" -#: part/api.py:144 +#: part/api.py:143 msgid "Filter by top-level categories" msgstr "" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 msgid "Parent" msgstr "" -#: part/api.py:182 +#: part/api.py:181 msgid "Filter by parent category" msgstr "" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 msgid "Exclude sub-categories under the specified category" msgstr "" -#: part/api.py:442 +#: part/api.py:441 msgid "Has Results" msgstr "" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 msgid "Is Revision" msgstr "" -#: part/api.py:927 +#: part/api.py:926 msgid "Has Revisions" msgstr "" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6504,784 +6579,785 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 msgid "Cannot delete this part as it is locked" msgstr "" -#: part/models.py:490 +#: part/models.py:521 msgid "Cannot delete this part as it is still active" msgstr "" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 msgid "Revision code must be specified" msgstr "" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 msgid "Parent part must point to the same template" msgstr "" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:894 +#: part/models.py:925 msgid "Duplicate part revision already exists." msgstr "" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 msgid "Part description (optional)" msgstr "" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 msgid "Revision Of" msgstr "" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 msgid "Locked" msgstr "" -#: part/models.py:1157 +#: part/models.py:1188 msgid "Locked parts cannot be edited" msgstr "" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "" -#: part/models.py:1209 +#: part/models.py:1240 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3479 +#: part/models.py:3510 msgid "Part Test Template" msgstr "" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 msgid "Choices must be unique" msgstr "" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 msgid "Part Parameter" msgstr "" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7289,338 +7365,358 @@ msgstr "" msgid "Parent Category" msgstr "" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 msgid "No parts selected" msgstr "" -#: part/serializers.py:422 +#: part/serializers.py:430 msgid "Select category" msgstr "" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 msgid "Copy Notes" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 msgid "Revisions" msgstr "" -#: part/serializers.py:898 +#: part/serializers.py:906 msgid "Unallocated Stock" msgstr "" -#: part/serializers.py:901 +#: part/serializers.py:909 msgid "Variant Stock" msgstr "" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 msgid "Existing Image" msgstr "" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1583 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1586 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1589 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -7666,65 +7762,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -7772,7 +7868,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -7784,101 +7880,105 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -7913,13 +8013,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -7937,7 +8037,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "" @@ -7947,7 +8047,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -7959,7 +8059,7 @@ msgstr "" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8027,7 +8127,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8116,13 +8216,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "" @@ -8158,7 +8258,7 @@ msgstr "" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8168,7 +8268,7 @@ msgstr "" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8240,9 +8340,9 @@ msgid "Update Pricing" msgstr "" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8332,100 +8432,108 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 msgid "Received purchase order line item" msgstr "" @@ -8433,51 +8541,59 @@ msgstr "" msgid "Scanned barcode data" msgstr "" -#: plugin/base/barcodes/serializers.py:81 -msgid "Purchase Order to allocate items against" +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" msgstr "" -#: plugin/base/barcodes/serializers.py:87 -msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" msgstr "" #: plugin/base/barcodes/serializers.py:105 -msgid "PurchaseOrder to receive items against" +msgid "Purchase Order to allocate items against" msgstr "" #: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 msgid "Purchase order has not been placed" msgstr "" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 msgid "Sales order line item to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 msgid "Quantity to allocate" msgstr "" @@ -8497,15 +8613,15 @@ msgstr "" msgid "No items provided to print" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -8516,6 +8632,30 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -8762,7 +8902,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -8930,7 +9070,7 @@ msgid "No valid objects provided to template" msgstr "" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9058,7 +9198,7 @@ msgstr "" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9157,10 +9297,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "" @@ -9173,8 +9313,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9191,11 +9333,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9216,29 +9358,29 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9246,8 +9388,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9279,7 +9421,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9304,9 +9446,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -9322,7 +9464,7 @@ msgstr "" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 msgid "Parent Location" msgstr "" @@ -9346,7 +9488,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -9372,316 +9514,316 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 msgid "Stock Location type" msgstr "" -#: stock/models.py:62 +#: stock/models.py:65 msgid "Stock Location types" msgstr "" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:195 +#: stock/models.py:207 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:869 +#: stock/models.py:891 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1619 +#: stock/models.py:1641 msgid "Test template does not exist" msgstr "" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2500 +#: stock/models.py:2583 msgid "Finished" msgstr "" -#: stock/models.py:2501 +#: stock/models.py:2584 msgid "The timestamp of the test finish" msgstr "" @@ -9753,193 +9895,197 @@ msgstr "" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 msgid "Tracking Items" msgstr "" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 msgid "Minimum Pricing" msgstr "" -#: stock/serializers.py:634 +#: stock/serializers.py:637 msgid "Maximum Pricing" msgstr "" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:782 +#: stock/serializers.py:785 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 msgid "No Change" msgstr "" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -9971,7 +10117,7 @@ msgstr "" msgid "Legacy stock tracking entry" msgstr "" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "" @@ -10027,7 +10173,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "" @@ -10047,7 +10193,7 @@ msgstr "" msgid "Build order output rejected" msgstr "" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "" @@ -10108,7 +10254,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10116,7 +10262,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10129,8 +10275,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10139,17 +10285,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10158,12 +10304,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10204,7 +10350,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "" @@ -10217,7 +10363,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -10262,7 +10408,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "" @@ -10289,7 +10435,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 msgid "stock item" msgstr "" @@ -10321,7 +10467,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -10333,84 +10479,84 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 msgid "Print Location Report" msgstr "" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 msgid "Location Type" msgstr "" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 msgid "stock location" msgstr "" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -10786,7 +10932,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -10796,7 +10942,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -10899,9 +11045,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "" @@ -10922,7 +11068,7 @@ msgid "No project codes found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -10941,12 +11087,12 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "" @@ -10954,40 +11100,40 @@ msgstr "" msgid "Edit Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 msgid "No stock location types found" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 msgid "Location count" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 msgid "Edit Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 msgid "Delete Location type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 msgid "Delete Location Type" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 msgid "New Location Type" msgstr "" @@ -11324,7 +11470,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -11579,7 +11725,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -11593,7 +11739,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -11758,7 +11904,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -11948,7 +12094,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -11968,30 +12114,30 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 msgid "External stock" msgstr "" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12023,7 +12169,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12071,13 +12217,13 @@ msgstr "" msgid "Complete Build Order" msgstr "" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12129,13 +12275,13 @@ msgstr "" msgid "Deallocate Stock Items" msgstr "" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12143,288 +12289,288 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 msgid "Selected build outputs will be marked as scrapped" msgstr "" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 msgid "Scrapped output are marked as rejected" msgstr "" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 msgid "Allocated stock items will no longer be available" msgstr "" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 msgid "Scrap Build Outputs" msgstr "" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 msgid "Selected build outputs will be deleted" msgstr "" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 msgid "Build output data will be permanently deleted" msgstr "" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 msgid "Allocated stock items will be returned to stock" msgstr "" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 msgid "Delete allocations" msgstr "" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 msgid "Delete Stock Allocations" msgstr "" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 msgid "No allocated stock" msgstr "" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 msgid "Stock item" msgstr "" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 msgid "Edit build allocation" msgstr "" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 msgid "Delete build allocation" msgstr "" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 msgid "Edit Build Allocation" msgstr "" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 msgid "Delete Build Allocation" msgstr "" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 msgid "Scrap outputs" msgstr "" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 msgid "build output" msgstr "" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 msgid "build outputs" msgstr "" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 msgid "Build output actions" msgstr "" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 msgid "Allocated Lines" msgstr "" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 #: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 msgid "build line" msgstr "" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 msgid "build lines" msgstr "" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 msgid "No build lines found" msgstr "" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 msgid "Unit Quantity" msgstr "" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 msgid "Consumable Item" msgstr "" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 msgid "Tracked item" msgstr "" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 msgid "Remove stock allocation" msgstr "" @@ -12571,7 +12717,7 @@ msgid "Delete Parameters" msgstr "" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "" @@ -12588,34 +12734,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "" @@ -12669,45 +12815,45 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 msgid "Print Reports" msgstr "" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 msgid "Download table data" msgstr "" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -12749,39 +12895,39 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2319 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2533 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3135 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3147 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -12866,7 +13012,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -12894,395 +13040,404 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 msgid "Create new category after this one" msgstr "" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 msgid "Part category created" msgstr "" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 msgid "part" msgstr "" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 msgid "parts" msgstr "" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 msgid "No subcategories found" msgstr "" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 msgid "Edit test template" msgstr "" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 msgid "Delete test template" msgstr "" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -13496,7 +13651,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 msgid "Specify packaging for incoming stock items" msgstr "" @@ -13544,73 +13699,73 @@ msgstr "" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 msgid "Scan Item Barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -13665,16 +13820,16 @@ msgstr "" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -13833,7 +13988,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -13891,517 +14046,521 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 msgid "Add Location type" msgstr "" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 msgid "Stock location created" msgstr "" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 msgid "Adjust batch code" msgstr "" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 msgid "Adjust packaging" msgstr "" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 msgid "stock items" msgstr "" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 msgid "Scan to location" msgstr "" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 msgid "Stock Actions" msgstr "" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 msgid "Load installed items" msgstr "" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 msgid "Stock item has been consumed by a build order" msgstr "" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 msgid "Stock Value" msgstr "" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 msgid "stock locations" msgstr "" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 msgid "Load Sublocations" msgstr "" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 msgid "No changes" msgstr "" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 msgid "Build order no longer exists" msgstr "" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 msgid "Sales Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 msgid "Select one or more stock items" msgstr "" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 msgid "Selected stock items" msgstr "" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 msgid "Change Stock Status" msgstr "" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -14436,12 +14595,12 @@ msgstr "" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -14483,7 +14642,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -14584,56 +14743,64 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:475 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 msgid "Show locked parts" msgstr "" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 msgid "Has Units" msgstr "" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 msgid "Part has defined units" msgstr "" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 msgid "Has Choices" msgstr "" @@ -14906,6 +15073,14 @@ msgstr "" msgid "Email settings not configured" msgstr "" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 1706ed4846..679eabdff1 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-16 03:18+0000\n" +"POT-Creation-Date: 2024-08-07 10:35+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -62,26 +62,30 @@ msgstr "在管理面板中可以找到错误详细信息" msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:205 InvenTree/models.py:921 build/serializers.py:462 -#: build/serializers.py:540 build/templates/build/sidebar.html:25 -#: company/models.py:824 company/templates/company/sidebar.html:37 -#: order/models.py:1305 order/templates/order/po_sidebar.html:11 +#: InvenTree/fields.py:205 InvenTree/models.py:929 build/serializers.py:463 +#: build/serializers.py:541 build/templates/build/sidebar.html:29 +#: company/models.py:836 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1380 +#: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3259 part/templates/part/part_sidebar.html:63 +#: part/models.py:3290 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:230 stock/models.py:2351 stock/models.py:2478 -#: stock/serializers.py:695 stock/serializers.py:853 stock/serializers.py:949 -#: stock/serializers.py:999 stock/serializers.py:1310 stock/serializers.py:1399 -#: stock/serializers.py:1564 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:230 stock/models.py:2373 stock/models.py:2561 +#: stock/serializers.py:698 stock/serializers.py:856 stock/serializers.py:982 +#: stock/serializers.py:1032 stock/serializers.py:1343 +#: stock/serializers.py:1432 stock/serializers.py:1597 +#: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 -#: templates/js/translated/company.js:1684 templates/js/translated/order.js:347 -#: templates/js/translated/part.js:1086 -#: templates/js/translated/purchase_order.js:2271 -#: templates/js/translated/return_order.js:775 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1084 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 #: templates/js/translated/sales_order.js:1103 #: templates/js/translated/sales_order.js:2018 -#: templates/js/translated/stock.js:1617 templates/js/translated/stock.js:2509 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2513 msgid "Notes" msgstr "备注" @@ -94,123 +98,127 @@ msgstr "值 '{name}' 没有以模式格式显示" msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配: " -#: InvenTree/forms.py:128 +#: InvenTree/forms.py:129 msgid "Enter password" msgstr "输入密码" -#: InvenTree/forms.py:129 +#: InvenTree/forms.py:130 msgid "Enter new password" msgstr "输入新密码" -#: InvenTree/forms.py:138 +#: InvenTree/forms.py:139 msgid "Confirm password" msgstr "确认密码" -#: InvenTree/forms.py:139 +#: InvenTree/forms.py:140 msgid "Confirm new password" msgstr "确认新密码" -#: InvenTree/forms.py:143 +#: InvenTree/forms.py:144 msgid "Old password" msgstr "旧密码" -#: InvenTree/forms.py:182 +#: InvenTree/forms.py:183 msgid "Email (again)" msgstr "Email (再次)" -#: InvenTree/forms.py:186 +#: InvenTree/forms.py:187 msgid "Email address confirmation" msgstr "Email 地址确认" -#: InvenTree/forms.py:209 +#: InvenTree/forms.py:210 msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" -#: InvenTree/forms.py:248 InvenTree/forms.py:256 +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." msgstr "所提供的主要电子邮件地址无效。" -#: InvenTree/forms.py:263 +#: InvenTree/forms.py:274 msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/forms.py:392 +#: InvenTree/forms.py:403 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:525 order/models.py:562 order/models.py:772 +#: InvenTree/helpers.py:493 order/models.py:568 order/models.py:811 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:533 +#: InvenTree/helpers.py:501 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:562 +#: InvenTree/helpers.py:530 msgid "Duplicate serial" msgstr "重复的序列号" -#: InvenTree/helpers.py:594 InvenTree/helpers.py:637 +#: InvenTree/helpers.py:562 InvenTree/helpers.py:605 #, fuzzy, python-brace-format #| msgid "Invalid group range: {g}" msgid "Invalid group range: {group}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:593 #, fuzzy, python-brace-format #| msgid "Group range {g} exceeds allowed quantity ({q})" msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "组 {g} 超出了允许的数量 ({q})" -#: InvenTree/helpers.py:655 InvenTree/helpers.py:662 InvenTree/helpers.py:681 +#: InvenTree/helpers.py:623 InvenTree/helpers.py:630 InvenTree/helpers.py:649 #, fuzzy, python-brace-format #| msgid "Invalid group sequence: {g}" msgid "Invalid group sequence: {group}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:691 +#: InvenTree/helpers.py:659 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:696 +#: InvenTree/helpers.py:664 #, fuzzy #| msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:814 +#: InvenTree/helpers.py:782 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:137 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:145 InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:142 InvenTree/helpers_model.py:149 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:148 +#: InvenTree/helpers_model.py:145 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:158 +#: InvenTree/helpers_model.py:155 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:161 +#: InvenTree/helpers_model.py:158 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:173 +#: InvenTree/helpers_model.py:170 msgid "Image download exceeded maximum size" msgstr "图像下载超过最大尺寸" -#: InvenTree/helpers_model.py:178 +#: InvenTree/helpers_model.py:175 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:186 +#: InvenTree/helpers_model.py:183 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" @@ -380,162 +388,162 @@ msgstr "" msgid "Email" msgstr "电子邮件" -#: InvenTree/models.py:105 +#: InvenTree/models.py:103 #, fuzzy #| msgid "Error reading file (invalid format)" msgid "Error running plugin validation" msgstr "读取文件时发生错误 (无效编码)" -#: InvenTree/models.py:174 +#: InvenTree/models.py:172 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:180 +#: InvenTree/models.py:178 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:181 +#: InvenTree/models.py:179 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:411 +#: InvenTree/models.py:409 msgid "Improperly formatted pattern" msgstr "格式不正确" -#: InvenTree/models.py:418 +#: InvenTree/models.py:416 msgid "Unknown format key specified" msgstr "指定了未知格式密钥" -#: InvenTree/models.py:424 +#: InvenTree/models.py:422 msgid "Missing required format key" msgstr "缺少必需的格式密钥" -#: InvenTree/models.py:435 +#: InvenTree/models.py:433 msgid "Reference field cannot be empty" msgstr "引用字段不能为空" -#: InvenTree/models.py:443 +#: InvenTree/models.py:441 msgid "Reference must match required pattern" msgstr "引用必须匹配所需的图案" -#: InvenTree/models.py:474 +#: InvenTree/models.py:472 msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:722 +#: InvenTree/models.py:723 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:739 +#: InvenTree/models.py:740 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:769 common/models.py:2665 common/models.py:3095 -#: common/serializers.py:412 company/models.py:587 machine/models.py:24 -#: part/models.py:951 part/models.py:3726 plugin/models.py:51 -#: report/models.py:150 stock/models.py:74 +#: InvenTree/models.py:770 common/models.py:2694 common/models.py:3124 +#: common/serializers.py:412 company/models.py:593 machine/models.py:24 +#: part/models.py:982 part/models.py:3757 plugin/models.py:51 +#: report/models.py:150 stock/models.py:77 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:83 #: templates/InvenTree/settings/plugin_settings.html:22 #: templates/InvenTree/settings/settings_staff_js.html:67 -#: templates/InvenTree/settings/settings_staff_js.html:446 +#: templates/InvenTree/settings/settings_staff_js.html:454 #: templates/js/translated/company.js:676 #: templates/js/translated/company.js:724 #: templates/js/translated/company.js:913 #: templates/js/translated/company.js:1165 -#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1192 -#: templates/js/translated/part.js:1480 templates/js/translated/part.js:1616 -#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2797 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1190 +#: templates/js/translated/part.js:1478 templates/js/translated/part.js:1614 +#: templates/js/translated/part.js:2765 templates/js/translated/stock.js:2801 msgid "Name" msgstr "名称" -#: InvenTree/models.py:775 build/models.py:242 -#: build/templates/build/detail.html:24 common/models.py:143 -#: company/models.py:515 company/models.py:815 +#: InvenTree/models.py:776 build/models.py:250 +#: build/templates/build/detail.html:24 common/models.py:156 +#: company/models.py:521 company/models.py:827 #: company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 -#: order/models.py:1338 part/admin.py:305 part/admin.py:408 part/models.py:974 -#: part/models.py:3741 part/templates/part/category.html:82 +#: order/models.py:1413 part/admin.py:305 part/admin.py:411 part/models.py:1005 +#: part/models.py:3772 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:156 #: report/models.py:510 report/models.py:536 #: report/templates/report/inventree_build_order_report.html:117 -#: stock/admin.py:54 stock/models.py:80 stock/templates/stock/location.html:125 +#: stock/admin.py:54 stock/models.py:83 stock/templates/stock/location.html:122 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 -#: templates/InvenTree/settings/settings_staff_js.html:451 +#: templates/InvenTree/settings/settings_staff_js.html:459 #: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 -#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/build.js:2311 templates/js/translated/company.js:519 #: templates/js/translated/company.js:1330 #: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 -#: templates/js/translated/order.js:298 templates/js/translated/part.js:1244 -#: templates/js/translated/part.js:1489 templates/js/translated/part.js:1627 -#: templates/js/translated/part.js:1964 templates/js/translated/part.js:2361 -#: templates/js/translated/part.js:2804 templates/js/translated/part.js:2916 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1242 +#: templates/js/translated/part.js:1487 templates/js/translated/part.js:1625 +#: templates/js/translated/part.js:1962 templates/js/translated/part.js:2358 +#: templates/js/translated/part.js:2800 templates/js/translated/part.js:2912 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1777 -#: templates/js/translated/purchase_order.js:1920 -#: templates/js/translated/purchase_order.js:2093 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 #: templates/js/translated/return_order.js:313 #: templates/js/translated/sales_order.js:838 #: templates/js/translated/sales_order.js:1848 -#: templates/js/translated/stock.js:1596 templates/js/translated/stock.js:2139 -#: templates/js/translated/stock.js:2829 templates/js/translated/stock.js:2912 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2143 +#: templates/js/translated/stock.js:2832 templates/js/translated/stock.js:2915 msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:776 stock/models.py:81 +#: InvenTree/models.py:777 stock/models.py:84 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:791 templates/js/translated/part.js:2813 -#: templates/js/translated/stock.js:2838 +#: InvenTree/models.py:792 templates/js/translated/part.js:2809 +#: templates/js/translated/stock.js:2841 msgid "Path" msgstr "路径" -#: InvenTree/models.py:921 +#: InvenTree/models.py:929 #, fuzzy #| msgid "Add transaction note (optional)" msgid "Markdown notes (optional)" msgstr "添加交易备注 (可选)" -#: InvenTree/models.py:950 +#: InvenTree/models.py:960 msgid "Barcode Data" msgstr "条码数据" -#: InvenTree/models.py:951 +#: InvenTree/models.py:961 msgid "Third party barcode data" msgstr "第三方条形码数据" -#: InvenTree/models.py:957 +#: InvenTree/models.py:967 msgid "Barcode Hash" msgstr "条码哈希" -#: InvenTree/models.py:958 +#: InvenTree/models.py:968 msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1035 msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:1054 +#: InvenTree/models.py:1078 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1055 +#: InvenTree/models.py:1079 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:63 part/models.py:4349 +#: InvenTree/serializers.py:63 part/models.py:4380 msgid "Must be a valid number" msgstr "必须是有效数字" #: InvenTree/serializers.py:100 company/models.py:186 -#: company/templates/company/company_base.html:112 part/models.py:3077 +#: company/templates/company/company_base.html:112 part/models.py:3108 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -587,16 +595,16 @@ msgstr "" msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:445 common/models.py:2670 company/models.py:163 -#: company/models.py:789 machine/models.py:39 part/admin.py:88 -#: part/models.py:1151 plugin/models.py:66 +#: InvenTree/serializers.py:445 common/models.py:2699 company/models.py:163 +#: company/models.py:801 machine/models.py:39 part/admin.py:88 +#: part/models.py:1182 plugin/models.py:66 #: templates/js/translated/company.js:523 #: templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 -#: templates/js/translated/table_filters.js:492 -#: templates/js/translated/table_filters.js:520 -#: templates/js/translated/table_filters.js:716 -#: templates/js/translated/table_filters.js:801 users/models.py:182 +#: templates/js/translated/table_filters.js:506 +#: templates/js/translated/table_filters.js:534 +#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:815 users/models.py:182 msgid "Active" msgstr "" @@ -632,7 +640,7 @@ msgstr "关于 InventTree" msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:581 importer/models.py:62 +#: InvenTree/serializers.py:581 importer/models.py:63 msgid "Data File" msgstr "数据文件" @@ -688,7 +696,7 @@ msgstr "远程图像文件的 URL" msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图像" -#: InvenTree/status.py:66 part/serializers.py:1236 +#: InvenTree/status.py:66 part/serializers.py:1244 msgid "Background worker check failed" msgstr "后台工作人员检查失败" @@ -754,59 +762,59 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:291 build/serializers.py:1234 part/models.py:4227 +#: build/api.py:291 build/serializers.py:1279 part/models.py:4258 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 -#: templates/js/translated/build.js:2705 +#: templates/js/translated/build.js:2702 #: templates/js/translated/table_filters.js:190 -#: templates/js/translated/table_filters.js:583 +#: templates/js/translated/table_filters.js:597 msgid "Consumable" msgstr "" -#: build/api.py:292 build/serializers.py:1235 part/models.py:4221 +#: build/api.py:292 build/serializers.py:1280 part/models.py:4252 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 -#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2693 #: templates/js/translated/table_filters.js:186 #: templates/js/translated/table_filters.js:215 -#: templates/js/translated/table_filters.js:587 +#: templates/js/translated/table_filters.js:601 msgid "Optional" msgstr "可选项" #: build/api.py:293 templates/js/translated/table_filters.js:408 -#: templates/js/translated/table_filters.js:579 +#: templates/js/translated/table_filters.js:593 msgid "Tracked" msgstr "" -#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1919 -#: templates/js/translated/build.js:2823 +#: build/api.py:295 part/admin.py:144 templates/js/translated/build.js:1917 +#: templates/js/translated/build.js:2820 #: templates/js/translated/sales_order.js:1965 -#: templates/js/translated/table_filters.js:571 +#: templates/js/translated/table_filters.js:585 msgid "Allocated" msgstr "" -#: build/api.py:303 company/models.py:879 company/serializers.py:388 +#: build/api.py:303 company/models.py:891 company/serializers.py:395 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 -#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2752 #: templates/js/translated/index.js:123 -#: templates/js/translated/model_renderers.js:234 -#: templates/js/translated/part.js:694 templates/js/translated/part.js:696 -#: templates/js/translated/part.js:701 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:692 templates/js/translated/part.js:694 +#: templates/js/translated/part.js:699 #: templates/js/translated/table_filters.js:340 -#: templates/js/translated/table_filters.js:575 +#: templates/js/translated/table_filters.js:589 msgid "Available" msgstr "空闲" -#: build/models.py:85 build/templates/build/build_base.html:9 +#: build/models.py:86 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:84 templates/email/build_order_completed.html:16 #: templates/email/overdue_build_order.html:15 -#: templates/js/translated/build.js:1147 templates/js/translated/stock.js:2973 +#: templates/js/translated/build.js:1145 templates/js/translated/stock.js:2976 msgid "Build Order" msgstr "生产订单" -#: build/models.py:86 build/templates/build/build_base.html:13 +#: build/models.py:87 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -817,82 +825,82 @@ msgstr "生产订单" msgid "Build Orders" msgstr "生产订单" -#: build/models.py:127 +#: build/models.py:135 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "Assembly BOM has not been validated" msgstr "一些库存项已被过度分配" -#: build/models.py:134 +#: build/models.py:142 #, fuzzy #| msgid "Print build order report" msgid "Build order cannot be created for an inactive part" msgstr "打印构建订单报告" -#: build/models.py:141 +#: build/models.py:149 #, fuzzy #| msgid "Build output cannot be specified for allocation of untracked parts" msgid "Build order cannot be created for an unlocked part" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/models.py:155 +#: build/models.py:163 msgid "Invalid choice for parent build" msgstr "上级生产选项无效" -#: build/models.py:166 order/models.py:240 +#: build/models.py:174 order/models.py:240 msgid "Responsible user or group must be specified" msgstr "" -#: build/models.py:172 +#: build/models.py:180 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Build order part cannot be changed" msgstr "无法取消订单" -#: build/models.py:233 +#: build/models.py:241 msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:234 build/serializers.py:1233 order/models.py:463 -#: order/models.py:935 order/models.py:1298 order/models.py:2055 -#: part/admin.py:411 part/models.py:4242 part/templates/part/upload_bom.html:54 +#: build/models.py:242 build/serializers.py:1278 order/models.py:468 +#: order/models.py:979 order/models.py:1373 order/models.py:2135 +#: part/admin.py:414 part/models.py:4273 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 #: report/templates/report/inventree_sales_order_report.html:28 #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 -#: templates/js/translated/build.js:1013 templates/js/translated/build.js:2688 -#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2136 -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/build.js:1011 templates/js/translated/build.js:2685 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 #: templates/js/translated/sales_order.js:1854 msgid "Reference" msgstr "引用" -#: build/models.py:245 +#: build/models.py:253 #, fuzzy #| msgid "Brief description of the build" msgid "Brief description of the build (optional)" msgstr "生产的简短描述." -#: build/models.py:253 build/templates/build/build_base.html:183 +#: build/models.py:261 build/templates/build/build_base.html:191 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" -#: build/models.py:254 +#: build/models.py:262 msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" -#: build/models.py:259 build/serializers.py:1224 -#: build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:1034 order/api.py:759 -#: order/models.py:1428 order/models.py:1583 order/models.py:1584 -#: part/api.py:1504 part/api.py:1800 part/models.py:397 part/models.py:3088 -#: part/models.py:3232 part/models.py:3380 part/models.py:3401 -#: part/models.py:3423 part/models.py:3559 part/models.py:3899 -#: part/models.py:4062 part/models.py:4193 part/models.py:4552 -#: part/serializers.py:1182 part/serializers.py:1812 +#: build/models.py:267 build/serializers.py:1269 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1046 order/api.py:765 +#: order/models.py:1503 order/models.py:1658 order/models.py:1659 +#: part/api.py:1507 part/api.py:1803 part/models.py:423 part/models.py:3119 +#: part/models.py:3263 part/models.py:3411 part/models.py:3432 +#: part/models.py:3454 part/models.py:3590 part/models.py:3930 +#: part/models.py:4093 part/models.py:4224 part/models.py:4583 +#: part/serializers.py:1190 part/serializers.py:1841 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -904,184 +912,184 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_sales_order_report.html:27 #: report/templates/report/inventree_stock_location_report.html:102 #: stock/serializers.py:111 stock/serializers.py:159 stock/serializers.py:446 -#: stock/serializers.py:883 templates/InvenTree/search.html:82 +#: stock/serializers.py:916 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:15 #: templates/email/overdue_build_order.html:16 #: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 #: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 -#: templates/js/translated/build.js:1004 templates/js/translated/build.js:1487 -#: templates/js/translated/build.js:1918 templates/js/translated/build.js:2337 -#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/build.js:1002 templates/js/translated/build.js:1485 +#: templates/js/translated/build.js:1916 templates/js/translated/build.js:2334 +#: templates/js/translated/build.js:2507 templates/js/translated/company.js:348 #: templates/js/translated/company.js:1116 #: templates/js/translated/company.js:1271 #: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 -#: templates/js/translated/part.js:1949 templates/js/translated/part.js:2021 -#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/part.js:1947 templates/js/translated/part.js:2019 +#: templates/js/translated/part.js:2327 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:751 #: templates/js/translated/purchase_order.js:1367 -#: templates/js/translated/purchase_order.js:1919 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 #: templates/js/translated/return_order.js:538 -#: templates/js/translated/return_order.js:709 +#: templates/js/translated/return_order.js:708 #: templates/js/translated/sales_order.js:300 #: templates/js/translated/sales_order.js:1233 #: templates/js/translated/sales_order.js:1634 #: templates/js/translated/sales_order.js:1832 -#: templates/js/translated/stock.js:677 templates/js/translated/stock.js:843 -#: templates/js/translated/stock.js:1061 templates/js/translated/stock.js:2078 -#: templates/js/translated/stock.js:2938 templates/js/translated/stock.js:3171 -#: templates/js/translated/stock.js:3317 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2082 +#: templates/js/translated/stock.js:2941 templates/js/translated/stock.js:3174 +#: templates/js/translated/stock.js:3319 msgid "Part" msgstr "商品" -#: build/models.py:267 +#: build/models.py:275 msgid "Select part to build" msgstr "选择要生产的商品" -#: build/models.py:272 +#: build/models.py:280 msgid "Sales Order Reference" msgstr "相关销售订单" -#: build/models.py:276 +#: build/models.py:284 msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:281 build/serializers.py:1009 -#: templates/js/translated/build.js:1906 +#: build/models.py:289 build/serializers.py:1040 +#: templates/js/translated/build.js:1904 #: templates/js/translated/sales_order.js:1221 msgid "Source Location" msgstr "来源地点" -#: build/models.py:285 +#: build/models.py:293 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" msgstr "此次生产从哪个仓储位置获取库存(留空即可从任何仓储位置取出)" -#: build/models.py:290 +#: build/models.py:298 msgid "Destination Location" msgstr "目标地点" -#: build/models.py:294 +#: build/models.py:302 msgid "Select location where the completed items will be stored" msgstr "选择已完成项目仓储地点" -#: build/models.py:298 +#: build/models.py:306 msgid "Build Quantity" msgstr "生产数量" -#: build/models.py:301 +#: build/models.py:309 msgid "Number of stock items to build" msgstr "要生产的项目数量" -#: build/models.py:305 +#: build/models.py:313 msgid "Completed items" msgstr "已完成项目" -#: build/models.py:307 +#: build/models.py:315 msgid "Number of stock items which have been completed" msgstr "已完成的库存项目数量" -#: build/models.py:311 +#: build/models.py:319 msgid "Build Status" msgstr "生产状态" -#: build/models.py:315 +#: build/models.py:323 msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:324 build/serializers.py:296 build/serializers.py:1145 -#: order/serializers.py:633 stock/models.py:837 stock/serializers.py:76 -#: stock/serializers.py:1529 templates/js/translated/purchase_order.js:1129 -#: templates/js/translated/stock.js:1195 +#: build/models.py:332 build/serializers.py:297 build/serializers.py:1190 +#: order/serializers.py:666 stock/models.py:859 stock/serializers.py:76 +#: stock/serializers.py:1562 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 msgid "Batch Code" msgstr "批量代码" -#: build/models.py:328 build/serializers.py:297 +#: build/models.py:336 build/serializers.py:298 msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:331 order/models.py:316 order/serializers.py:127 -#: part/models.py:1191 part/templates/part/part_base.html:319 +#: build/models.py:339 order/models.py:316 order/serializers.py:127 +#: part/models.py:1222 part/templates/part/part_base.html:319 #: templates/js/translated/return_order.js:338 #: templates/js/translated/sales_order.js:863 msgid "Creation Date" msgstr "创建日期" -#: build/models.py:335 +#: build/models.py:343 msgid "Target completion date" msgstr "预计完成日期" -#: build/models.py:336 +#: build/models.py:344 msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:339 order/models.py:521 order/models.py:2100 -#: templates/js/translated/build.js:2422 +#: build/models.py:347 order/models.py:527 order/models.py:2180 +#: templates/js/translated/build.js:2419 msgid "Completion Date" msgstr "完成日期:" -#: build/models.py:345 +#: build/models.py:353 msgid "completed by" msgstr "完成人" -#: build/models.py:353 templates/js/translated/build.js:2382 +#: build/models.py:361 templates/js/translated/build.js:2379 msgid "Issued by" msgstr "发布者" -#: build/models.py:354 +#: build/models.py:362 msgid "User who issued this build order" msgstr "发布此生产订单的用户" -#: build/models.py:362 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:152 -#: order/models.py:334 order/templates/order/order_base.html:217 -#: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:232 part/models.py:1208 +#: build/models.py:370 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:165 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1239 #: part/templates/part/part_base.html:399 #: report/templates/report/inventree_build_order_report.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 -#: templates/js/translated/build.js:2394 -#: templates/js/translated/purchase_order.js:1834 +#: templates/js/translated/build.js:2391 +#: templates/js/translated/purchase_order.js:1833 #: templates/js/translated/return_order.js:358 -#: templates/js/translated/table_filters.js:531 +#: templates/js/translated/table_filters.js:545 msgid "Responsible" msgstr "责任人" -#: build/models.py:363 +#: build/models.py:371 msgid "User or group responsible for this build order" msgstr "构建此订单的用户或组" -#: build/models.py:368 build/templates/build/detail.html:108 +#: build/models.py:376 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:194 -#: order/templates/order/order_base.html:167 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:184 -#: part/templates/part/part_base.html:392 stock/models.py:833 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:392 stock/models.py:855 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1019 msgid "External Link" msgstr "外部链接" -#: build/models.py:369 common/models.py:3236 part/models.py:1026 -#: stock/models.py:833 +#: build/models.py:377 common/models.py:3265 part/models.py:1057 +#: stock/models.py:855 msgid "Link to external URL" msgstr "链接到外部 URL" -#: build/models.py:373 +#: build/models.py:381 msgid "Build Priority" msgstr "创建优先级" -#: build/models.py:376 +#: build/models.py:384 msgid "Priority of this build order" msgstr "此构建订单的优先级" -#: build/models.py:383 common/models.py:122 common/models.py:136 +#: build/models.py:391 common/models.py:135 common/models.py:149 #: order/admin.py:18 order/models.py:298 #: templates/InvenTree/settings/settings_staff_js.html:146 -#: templates/js/translated/build.js:2319 -#: templates/js/translated/purchase_order.js:1781 +#: templates/js/translated/build.js:2316 +#: templates/js/translated/purchase_order.js:1780 #: templates/js/translated/return_order.js:317 #: templates/js/translated/sales_order.js:842 #: templates/js/translated/table_filters.js:48 @@ -1091,74 +1099,74 @@ msgstr "此构建订单的优先级" msgid "Project Code" msgstr "商品二维码" -#: build/models.py:384 +#: build/models.py:392 #, fuzzy #| msgid "Priority of this build order" msgid "Project code for this build order" msgstr "此构建订单的优先级" -#: build/models.py:617 build/models.py:682 +#: build/models.py:639 build/models.py:766 msgid "Failed to offload task to complete build allocations" msgstr "" -#: build/models.py:639 +#: build/models.py:661 #, python-brace-format msgid "Build order {build} has been completed" msgstr "生产订单 {build} 已完成" -#: build/models.py:645 +#: build/models.py:667 msgid "A build order has been completed" msgstr "生产订单已完成" -#: build/models.py:871 build/models.py:956 +#: build/models.py:955 build/models.py:1040 msgid "No build output specified" msgstr "未指定生产产出" -#: build/models.py:874 +#: build/models.py:958 msgid "Build output is already completed" msgstr "生产产出已完成" -#: build/models.py:877 +#: build/models.py:961 msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" -#: build/models.py:960 build/serializers.py:229 build/serializers.py:278 -#: build/serializers.py:876 order/models.py:559 order/serializers.py:462 -#: order/serializers.py:628 part/serializers.py:1553 part/serializers.py:1975 -#: stock/models.py:678 stock/models.py:1498 stock/serializers.py:666 +#: build/models.py:1044 build/serializers.py:230 build/serializers.py:279 +#: build/serializers.py:907 order/models.py:565 order/serializers.py:495 +#: order/serializers.py:661 part/serializers.py:1567 part/serializers.py:2004 +#: stock/models.py:700 stock/models.py:1520 stock/serializers.py:669 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" -#: build/models.py:965 build/serializers.py:234 +#: build/models.py:1049 build/serializers.py:235 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Quantity cannot be greater than the output quantity" msgstr "数量必须大于0" -#: build/models.py:1025 build/serializers.py:557 +#: build/models.py:1109 build/serializers.py:558 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1366 +#: build/models.py:1450 #, fuzzy #| msgid "Delete parameters" msgid "Build Order Line Item" msgstr "删除参数" -#: build/models.py:1391 +#: build/models.py:1475 #, fuzzy #| msgid "Build Notes" msgid "Build object" msgstr "生产备注" -#: build/models.py:1405 build/models.py:1661 build/serializers.py:216 -#: build/serializers.py:263 build/serializers.py:1240 -#: build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2550 -#: order/models.py:1281 order/models.py:1966 order/serializers.py:1405 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:410 -#: part/forms.py:48 part/models.py:3246 part/models.py:4215 +#: build/models.py:1489 build/models.py:1745 build/serializers.py:217 +#: build/serializers.py:264 build/serializers.py:1285 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2571 +#: order/models.py:1356 order/models.py:2041 order/serializers.py:1439 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3277 part/models.py:4246 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1168,570 +1176,601 @@ msgstr "生产备注" #: report/templates/report/inventree_stock_location_report.html:104 #: report/templates/report/inventree_test_report.html:90 #: report/templates/report/inventree_test_report.html:169 stock/admin.py:159 -#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:657 +#: stock/serializers.py:127 stock/serializers.py:167 stock/serializers.py:660 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 #: templates/email/build_order_completed.html:18 #: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 #: templates/js/translated/bom.js:981 templates/js/translated/build.js:522 -#: templates/js/translated/build.js:738 templates/js/translated/build.js:1544 -#: templates/js/translated/build.js:1921 templates/js/translated/build.js:2532 +#: templates/js/translated/build.js:737 templates/js/translated/build.js:1542 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2529 #: templates/js/translated/company.js:1818 -#: templates/js/translated/model_renderers.js:236 -#: templates/js/translated/order.js:304 templates/js/translated/part.js:967 -#: templates/js/translated/part.js:1817 templates/js/translated/part.js:3361 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:965 +#: templates/js/translated/part.js:1815 templates/js/translated/part.js:3357 #: templates/js/translated/pricing.js:381 #: templates/js/translated/pricing.js:474 #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:754 -#: templates/js/translated/purchase_order.js:1923 -#: templates/js/translated/purchase_order.js:2142 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1235 #: templates/js/translated/sales_order.js:1554 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1734 #: templates/js/translated/sales_order.js:1860 -#: templates/js/translated/stock.js:565 templates/js/translated/stock.js:703 -#: templates/js/translated/stock.js:874 templates/js/translated/stock.js:3102 -#: templates/js/translated/stock.js:3185 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3105 +#: templates/js/translated/stock.js:3188 msgid "Quantity" msgstr "数量" -#: build/models.py:1406 +#: build/models.py:1490 #, fuzzy #| msgid "Stock required for build order" msgid "Required quantity for build order" msgstr "生产订单所需的库存" -#: build/models.py:1486 +#: build/models.py:1570 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定生产产出,因为主部件已经被标记为可追踪的" -#: build/models.py:1495 +#: build/models.py:1579 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1505 order/models.py:1917 +#: build/models.py:1589 order/models.py:1992 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1511 order/models.py:1920 +#: build/models.py:1595 order/models.py:1995 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" -#: build/models.py:1517 +#: build/models.py:1601 msgid "Quantity must be 1 for serialized stock" msgstr "序列化库存的数量必须是 1" -#: build/models.py:1576 +#: build/models.py:1660 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Selected stock item does not match BOM line" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1648 build/serializers.py:856 order/serializers.py:1249 -#: order/serializers.py:1270 stock/models.py:359 stock/serializers.py:93 -#: stock/serializers.py:760 stock/serializers.py:1248 stock/serializers.py:1360 +#: build/models.py:1732 build/serializers.py:887 order/serializers.py:1276 +#: order/serializers.py:1297 stock/models.py:376 stock/serializers.py:93 +#: stock/serializers.py:763 stock/serializers.py:1281 stock/serializers.py:1393 #: stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 -#: templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:1918 #: templates/js/translated/sales_order.js:301 #: templates/js/translated/sales_order.js:1234 #: templates/js/translated/sales_order.js:1535 #: templates/js/translated/sales_order.js:1540 #: templates/js/translated/sales_order.js:1641 #: templates/js/translated/sales_order.js:1728 -#: templates/js/translated/stock.js:678 templates/js/translated/stock.js:844 -#: templates/js/translated/stock.js:3058 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3061 msgid "Stock Item" msgstr "库存项" -#: build/models.py:1649 +#: build/models.py:1733 msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1662 +#: build/models.py:1746 msgid "Stock quantity to allocate to build" msgstr "分配到生产的数量" -#: build/models.py:1670 +#: build/models.py:1754 msgid "Install into" msgstr "安装到" -#: build/models.py:1671 +#: build/models.py:1755 msgid "Destination stock item" msgstr "目标库存项" -#: build/serializers.py:93 build/serializers.py:1142 build/serializers.py:1225 -#: part/admin.py:41 part/admin.py:405 part/models.py:4064 part/stocktake.py:220 +#: build/serializers.py:94 build/serializers.py:1182 build/serializers.py:1270 +#: part/admin.py:41 part/admin.py:408 part/models.py:4095 part/stocktake.py:220 #: stock/admin.py:156 msgid "Part Name" msgstr "" -#: build/serializers.py:105 +#: build/serializers.py:106 #, fuzzy #| msgid "Part QR Code" msgid "Project Code Label" msgstr "商品二维码" -#: build/serializers.py:166 build/serializers.py:885 -#: templates/js/translated/build.js:1044 templates/js/translated/build.js:1497 +#: build/serializers.py:167 build/serializers.py:916 +#: templates/js/translated/build.js:1042 templates/js/translated/build.js:1495 msgid "Build Output" msgstr "生产产出" -#: build/serializers.py:178 +#: build/serializers.py:179 msgid "Build output does not match the parent build" msgstr "生产产出与对应生产不匹配" -#: build/serializers.py:182 +#: build/serializers.py:183 msgid "Output part does not match BuildOrder part" msgstr "产出部件与生产订单部件不匹配" -#: build/serializers.py:186 +#: build/serializers.py:187 msgid "This build output has already been completed" msgstr "此生产产出已经完成" -#: build/serializers.py:197 +#: build/serializers.py:198 msgid "This build output is not fully allocated" msgstr "生产产出未被完成分配" -#: build/serializers.py:217 build/serializers.py:264 +#: build/serializers.py:218 build/serializers.py:265 msgid "Enter quantity for build output" msgstr "输入生产产出数量" -#: build/serializers.py:285 +#: build/serializers.py:286 msgid "Integer quantity required for trackable parts" msgstr "对于可追踪的部件,需要整数型数值" -#: build/serializers.py:288 +#: build/serializers.py:289 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:303 order/serializers.py:641 order/serializers.py:1409 -#: stock/serializers.py:677 templates/js/translated/purchase_order.js:1154 -#: templates/js/translated/stock.js:368 templates/js/translated/stock.js:566 +#: build/serializers.py:304 order/serializers.py:674 order/serializers.py:1443 +#: stock/serializers.py:680 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 msgid "Serial Numbers" msgstr "序列号" -#: build/serializers.py:304 +#: build/serializers.py:305 msgid "Enter serial numbers for build outputs" msgstr "输入生产产出的序列号" -#: build/serializers.py:309 build/serializers.py:450 build/serializers.py:522 -#: order/serializers.py:617 order/serializers.py:741 order/serializers.py:1736 -#: part/serializers.py:1202 stock/serializers.py:102 stock/serializers.py:688 -#: stock/serializers.py:848 stock/serializers.py:944 stock/serializers.py:1392 -#: stock/serializers.py:1648 stock/templates/stock/item_base.html:394 +#: build/serializers.py:310 build/serializers.py:451 build/serializers.py:523 +#: order/serializers.py:650 order/serializers.py:774 order/serializers.py:1760 +#: part/serializers.py:1210 stock/serializers.py:102 stock/serializers.py:691 +#: stock/serializers.py:851 stock/serializers.py:977 stock/serializers.py:1425 +#: stock/serializers.py:1681 stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:578 -#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1034 -#: templates/js/translated/build.js:1176 templates/js/translated/build.js:2547 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1032 +#: templates/js/translated/build.js:1174 templates/js/translated/build.js:2544 #: templates/js/translated/purchase_order.js:1210 #: templates/js/translated/purchase_order.js:1320 #: templates/js/translated/sales_order.js:1547 #: templates/js/translated/sales_order.js:1655 #: templates/js/translated/sales_order.js:1663 #: templates/js/translated/sales_order.js:1742 -#: templates/js/translated/stock.js:679 templates/js/translated/stock.js:845 -#: templates/js/translated/stock.js:1063 templates/js/translated/stock.js:2282 -#: templates/js/translated/stock.js:2952 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2286 +#: templates/js/translated/stock.js:2955 msgid "Location" msgstr "地点" -#: build/serializers.py:310 +#: build/serializers.py:311 #, fuzzy #| msgid "Stock item created" msgid "Stock location for build output" msgstr "库存项已创建" -#: build/serializers.py:324 +#: build/serializers.py:325 msgid "Auto Allocate Serial Numbers" msgstr "自动分配序列号" -#: build/serializers.py:325 +#: build/serializers.py:326 msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:340 +#: build/serializers.py:341 #, fuzzy #| msgid "Integer quantity required for trackable parts" msgid "Serial numbers must be provided for trackable parts" msgstr "对于可追踪的部件,需要整数型数值" -#: build/serializers.py:365 stock/api.py:1033 +#: build/serializers.py:366 stock/api.py:1033 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" -#: build/serializers.py:412 build/serializers.py:474 build/serializers.py:563 +#: build/serializers.py:413 build/serializers.py:475 build/serializers.py:564 msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:451 +#: build/serializers.py:452 #, fuzzy #| msgid "Stock item created" msgid "Stock location for scrapped outputs" msgstr "库存项已创建" -#: build/serializers.py:457 +#: build/serializers.py:458 #, fuzzy #| msgid "Stock Locations" msgid "Discard Allocations" msgstr "仓储地点" -#: build/serializers.py:458 +#: build/serializers.py:459 msgid "Discard any stock allocations for scrapped outputs" msgstr "" -#: build/serializers.py:463 +#: build/serializers.py:464 #, fuzzy #| msgid "Location for completed build outputs" msgid "Reason for scrapping build output(s)" msgstr "已完成生产产出的仓储地点" -#: build/serializers.py:523 +#: build/serializers.py:524 msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" -#: build/serializers.py:529 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:959 -#: order/models.py:2079 order/serializers.py:649 stock/admin.py:164 -#: stock/serializers.py:995 stock/serializers.py:1536 +#: build/serializers.py:530 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2159 order/serializers.py:682 +#: stock/admin.py:164 stock/serializers.py:1028 stock/serializers.py:1569 #: stock/templates/stock/item_base.html:427 -#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2363 #: templates/js/translated/purchase_order.js:1371 -#: templates/js/translated/purchase_order.js:1793 +#: templates/js/translated/purchase_order.js:1792 #: templates/js/translated/return_order.js:330 #: templates/js/translated/sales_order.js:855 -#: templates/js/translated/stock.js:2257 templates/js/translated/stock.js:3076 -#: templates/js/translated/stock.js:3201 +#: templates/js/translated/stock.js:2261 templates/js/translated/stock.js:3079 +#: templates/js/translated/stock.js:3204 msgid "Status" msgstr "状态" -#: build/serializers.py:535 +#: build/serializers.py:536 msgid "Accept Incomplete Allocation" msgstr "接受不完整的分配" -#: build/serializers.py:536 +#: build/serializers.py:537 msgid "Complete outputs if stock has not been fully allocated" msgstr "如果库存尚未完成分配,完成产出" -#: build/serializers.py:621 +#: build/serializers.py:649 #, fuzzy #| msgid "Remove Allocated Stock" msgid "Consume Allocated Stock" msgstr "移除已分配的库存" -#: build/serializers.py:622 +#: build/serializers.py:650 #, fuzzy #| msgid "Subtract any stock which has already been allocated to this build" msgid "Consume any stock which has already been allocated to this build" msgstr "减去已经分配至此生产的库存" -#: build/serializers.py:628 +#: build/serializers.py:656 msgid "Remove Incomplete Outputs" msgstr "移除未完成的产出" -#: build/serializers.py:629 +#: build/serializers.py:657 msgid "Delete any build outputs which have not been completed" msgstr "删除所有未完成的生产产出" -#: build/serializers.py:656 +#: build/serializers.py:684 msgid "Not permitted" msgstr "" -#: build/serializers.py:657 +#: build/serializers.py:685 msgid "Accept as consumed by this build order" msgstr "接受此构建订单所消耗的内容" -#: build/serializers.py:658 +#: build/serializers.py:686 msgid "Deallocate before completing this build order" msgstr "在完成此构建订单前取消分配" -#: build/serializers.py:688 +#: build/serializers.py:716 msgid "Overallocated Stock" msgstr "超出分配的库存" -#: build/serializers.py:690 +#: build/serializers.py:718 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "你想如何处理分配给构建订单的额外库存物品" -#: build/serializers.py:700 +#: build/serializers.py:728 msgid "Some stock items have been overallocated" msgstr "一些库存项已被过度分配" -#: build/serializers.py:705 +#: build/serializers.py:733 msgid "Accept Unallocated" msgstr "接受未分配的" -#: build/serializers.py:706 +#: build/serializers.py:734 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "接受库存项未被完成分配至此生产订单" -#: build/serializers.py:716 templates/js/translated/build.js:316 +#: build/serializers.py:744 templates/js/translated/build.js:316 msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:721 order/serializers.py:320 order/serializers.py:1312 +#: build/serializers.py:749 order/serializers.py:341 order/serializers.py:1344 msgid "Accept Incomplete" msgstr "接受未完成" -#: build/serializers.py:722 +#: build/serializers.py:750 msgid "Accept that the required number of build outputs have not been completed" msgstr "接受所需的生产产出未完成" -#: build/serializers.py:732 templates/js/translated/build.js:320 +#: build/serializers.py:760 templates/js/translated/build.js:320 msgid "Required build quantity has not been completed" msgstr "所需生产数量尚未完成" -#: build/serializers.py:741 templates/js/translated/build.js:304 +#: build/serializers.py:769 +#, fuzzy +#| msgid "Build order output created" +msgid "Build order must be in production state" +msgstr "已创建生产订单输出" + +#: build/serializers.py:772 templates/js/translated/build.js:304 msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:779 +#: build/serializers.py:810 #, fuzzy #| msgid "Build actions" msgid "Build Line" msgstr "生产操作" -#: build/serializers.py:789 +#: build/serializers.py:820 msgid "Build output" msgstr "生产产出" -#: build/serializers.py:797 +#: build/serializers.py:828 msgid "Build output must point to the same build" msgstr "生产产出必须指向相同的生产" -#: build/serializers.py:833 +#: build/serializers.py:864 #, fuzzy #| msgid "Delete parameters" msgid "Build Line Item" msgstr "删除参数" -#: build/serializers.py:847 +#: build/serializers.py:878 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:862 stock/serializers.py:1261 +#: build/serializers.py:893 stock/serializers.py:1294 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:910 order/serializers.py:1303 +#: build/serializers.py:941 order/serializers.py:1330 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" -#: build/serializers.py:916 +#: build/serializers.py:947 msgid "Build output must be specified for allocation of tracked parts" msgstr "对于被追踪的部件的分配,必须指定生产产出" -#: build/serializers.py:923 +#: build/serializers.py:954 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:947 order/serializers.py:1555 +#: build/serializers.py:978 order/serializers.py:1589 msgid "Allocation items must be provided" msgstr "必须提供分配的项" -#: build/serializers.py:1010 +#: build/serializers.py:1041 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "部件来源的仓储地点(留空则可来源于任何仓储地点)" -#: build/serializers.py:1018 +#: build/serializers.py:1049 msgid "Exclude Location" msgstr "排除地点" -#: build/serializers.py:1019 +#: build/serializers.py:1050 msgid "Exclude stock items from this selected location" msgstr "从该选定的仓储地点排除库存项" -#: build/serializers.py:1024 +#: build/serializers.py:1055 msgid "Interchangeable Stock" msgstr "可互换的库存" -#: build/serializers.py:1025 +#: build/serializers.py:1056 msgid "Stock items in multiple locations can be used interchangeably" msgstr "多处地点的库存项可以互换使用" -#: build/serializers.py:1030 +#: build/serializers.py:1061 msgid "Substitute Stock" msgstr "可替换的库存" -#: build/serializers.py:1031 +#: build/serializers.py:1062 msgid "Allow allocation of substitute parts" msgstr "允许分配可替换的部件" -#: build/serializers.py:1036 +#: build/serializers.py:1067 msgid "Optional Items" msgstr "可选项目" -#: build/serializers.py:1037 +#: build/serializers.py:1068 msgid "Allocate optional BOM items to build order" msgstr "分配可选的BOM项目来建立订单" -#: build/serializers.py:1059 +#: build/serializers.py:1090 msgid "Failed to start auto-allocation task" msgstr "" -#: build/serializers.py:1134 +#: build/serializers.py:1173 #, fuzzy #| msgid "Supplier Part Orders" msgid "Supplier Part Number" msgstr "供应商商品订单" -#: build/serializers.py:1135 company/models.py:500 +#: build/serializers.py:1174 company/models.py:506 msgid "Manufacturer Part Number" msgstr "制造商商品编号" -#: build/serializers.py:1136 stock/admin.py:53 stock/admin.py:175 +#: build/serializers.py:1175 stock/admin.py:53 stock/admin.py:175 #: stock/serializers.py:457 msgid "Location Name" msgstr "" -#: build/serializers.py:1137 +#: build/serializers.py:1176 #, fuzzy #| msgid "Build Order Reference" msgid "Build Reference" msgstr "相关生产订单" -#: build/serializers.py:1138 +#: build/serializers.py:1177 #, fuzzy #| msgid "Reference" msgid "BOM Reference" msgstr "引用" -#: build/serializers.py:1141 part/admin.py:39 part/admin.py:398 -#: part/models.py:4063 part/stocktake.py:219 stock/admin.py:152 +#: build/serializers.py:1178 company/models.py:852 +#: company/templates/company/supplier_part.html:160 order/serializers.py:686 +#: stock/admin.py:228 stock/models.py:818 stock/serializers.py:1579 +#: stock/templates/stock/item_base.html:240 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2509 +msgid "Packaging" +msgstr "打包" + +#: build/serializers.py:1181 part/admin.py:39 part/admin.py:398 +#: part/models.py:4094 part/stocktake.py:219 stock/admin.py:152 msgid "Part ID" msgstr "商品ID" -#: build/serializers.py:1143 build/serializers.py:1226 part/admin.py:402 -#: part/models.py:4065 +#: build/serializers.py:1183 build/serializers.py:1271 part/admin.py:402 +#: part/models.py:4096 msgid "Part IPN" msgstr "" -#: build/serializers.py:1146 +#: build/serializers.py:1184 build/serializers.py:1273 part/admin.py:45 +#: part/stocktake.py:221 +msgid "Part Description" +msgstr "" + +#: build/serializers.py:1187 +#, fuzzy +#| msgid "Part ID" +msgid "BOM Part ID" +msgstr "商品ID" + +#: build/serializers.py:1188 +#, fuzzy +#| msgid "Part name" +msgid "BOM Part Name" +msgstr "商品名称" + +#: build/serializers.py:1191 #: report/templates/report/inventree_return_order_report.html:25 -#: report/templates/report/inventree_test_report.html:88 stock/models.py:823 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:845 #: stock/serializers.py:151 stock/templates/stock/item_base.html:311 -#: templates/js/translated/build.js:520 templates/js/translated/build.js:1542 -#: templates/js/translated/build.js:2530 -#: templates/js/translated/model_renderers.js:230 +#: templates/js/translated/build.js:520 templates/js/translated/build.js:1540 +#: templates/js/translated/build.js:2527 +#: templates/js/translated/model_renderers.js:231 #: templates/js/translated/return_order.js:539 -#: templates/js/translated/return_order.js:723 +#: templates/js/translated/return_order.js:722 #: templates/js/translated/sales_order.js:315 #: templates/js/translated/sales_order.js:1647 #: templates/js/translated/sales_order.js:1732 -#: templates/js/translated/stock.js:597 +#: templates/js/translated/stock.js:602 msgid "Serial Number" msgstr "序列号" -#: build/serializers.py:1159 stock/serializers.py:590 -#: templates/js/translated/build.js:1019 templates/js/translated/build.js:1166 -#: templates/js/translated/build.js:2519 +#: build/serializers.py:1204 stock/serializers.py:593 +#: templates/js/translated/build.js:1017 templates/js/translated/build.js:1164 +#: templates/js/translated/build.js:2516 #, fuzzy #| msgid "Allocated Parts" msgid "Allocated Quantity" msgstr "已分配的部件" -#: build/serializers.py:1160 stock/templates/stock/item_base.html:340 +#: build/serializers.py:1205 stock/templates/stock/item_base.html:340 msgid "Available Quantity" msgstr "" -#: build/serializers.py:1228 part/admin.py:45 part/stocktake.py:221 -msgid "Part Description" -msgstr "" - -#: build/serializers.py:1229 +#: build/serializers.py:1274 #, fuzzy #| msgid "Part Category" msgid "Part Category ID" msgstr "商品类别" -#: build/serializers.py:1230 +#: build/serializers.py:1275 #, fuzzy #| msgid "Part Category" msgid "Part Category Name" msgstr "商品类别" -#: build/serializers.py:1236 common/models.py:1494 part/admin.py:113 -#: part/models.py:1134 templates/js/translated/table_filters.js:147 +#: build/serializers.py:1281 common/models.py:1513 part/admin.py:113 +#: part/models.py:1165 templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:776 +#: templates/js/translated/table_filters.js:790 msgid "Trackable" msgstr "可追踪" -#: build/serializers.py:1237 +#: build/serializers.py:1282 msgid "Inherited" msgstr "" -#: build/serializers.py:1238 part/models.py:4275 +#: build/serializers.py:1283 part/models.py:4306 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 -#: templates/js/translated/build.js:2714 +#: templates/js/translated/build.js:2711 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1242 part/models.py:4072 part/models.py:4544 +#: build/serializers.py:1287 part/models.py:4103 part/models.py:4575 #: stock/api.py:796 msgid "BOM Item" msgstr "BOM项" -#: build/serializers.py:1251 build/templates/build/detail.html:236 +#: build/serializers.py:1296 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" msgstr "" -#: build/serializers.py:1256 part/admin.py:132 part/bom.py:173 -#: part/serializers.py:889 part/serializers.py:1571 +#: build/serializers.py:1301 part/admin.py:132 part/bom.py:181 +#: part/serializers.py:897 part/serializers.py:1600 #: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 -#: templates/js/translated/build.js:2807 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:2154 +#: templates/js/translated/build.js:2804 templates/js/translated/part.js:709 +#: templates/js/translated/part.js:2152 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: build/serializers.py:1261 part/serializers.py:1573 -#: templates/js/translated/build.js:2811 +#: build/serializers.py:1306 part/serializers.py:1602 +#: templates/js/translated/build.js:2808 #: templates/js/translated/table_filters.js:360 msgid "In Production" msgstr "正在生产" -#: build/serializers.py:1266 part/bom.py:172 part/serializers.py:1598 +#: build/serializers.py:1311 part/bom.py:180 part/serializers.py:1627 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" msgstr "可用库存" -#: build/serializers.py:1270 +#: build/serializers.py:1315 #, fuzzy #| msgid "Substitute Stock" msgid "Available Substitute Stock" msgstr "可替换的库存" -#: build/serializers.py:1271 +#: build/serializers.py:1316 #, fuzzy #| msgid "Available Stock" msgid "Available Variant Stock" msgstr "可用库存" -#: build/serializers.py:1272 +#: build/serializers.py:1317 #, fuzzy #| msgid "Available Stock" msgid "Total Available Stock" msgstr "可用库存" -#: build/serializers.py:1273 part/serializers.py:896 +#: build/serializers.py:1318 part/serializers.py:904 #, fuzzy #| msgid "External Link" msgid "External Stock" msgstr "外部链接" #: build/status_codes.py:11 generic/states/tests.py:17 order/status_codes.py:12 -#: order/status_codes.py:37 order/status_codes.py:64 order/status_codes.py:82 -#: templates/js/translated/table_filters.js:598 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:612 msgid "Pending" msgstr "待定" @@ -1739,16 +1778,21 @@ msgstr "待定" msgid "Production" msgstr "生产中" -#: build/status_codes.py:13 order/status_codes.py:15 order/status_codes.py:45 -#: order/status_codes.py:70 +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 msgid "Cancelled" msgstr "已取消" -#: build/status_codes.py:14 generic/states/tests.py:19 importer/models.py:501 -#: importer/status_codes.py:19 order/status_codes.py:14 -#: order/status_codes.py:44 order/status_codes.py:69 -#: order/templates/order/order_base.html:158 -#: order/templates/order/sales_order_base.html:165 report/models.py:444 +#: build/status_codes.py:15 generic/states/tests.py:19 importer/models.py:509 +#: importer/status_codes.py:19 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:444 msgid "Complete" msgstr "完成" @@ -1778,8 +1822,8 @@ msgstr "商品名称" #: order/templates/order/sales_order_base.html:38 #: part/templates/part/part_base.html:41 #: stock/templates/stock/item_base.html:40 -#: stock/templates/stock/location.html:55 -#: templates/js/translated/filters.js:335 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 msgid "Barcode actions" msgstr "" @@ -1790,7 +1834,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:42 #: part/templates/part/part_base.html:44 #: stock/templates/stock/item_base.html:44 -#: stock/templates/stock/location.html:57 templates/qr_button.html:1 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 msgid "Show QR Code" msgstr "" @@ -1801,7 +1845,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:45 #: part/templates/part/part_base.html:47 #: stock/templates/stock/item_base.html:47 -#: stock/templates/stock/location.html:59 +#: stock/templates/stock/location.html:56 #: templates/js/translated/barcode.js:527 #: templates/js/translated/barcode.js:532 msgid "Unlink Barcode" @@ -1814,7 +1858,7 @@ msgstr "" #: order/templates/order/sales_order_base.html:47 #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:49 -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:58 msgid "Link Barcode" msgstr "" @@ -1838,88 +1882,106 @@ msgid "Edit Build" msgstr "编辑生产" #: build/templates/build/build_base.html:73 -msgid "Cancel Build" -msgstr "取消生产" - -#: build/templates/build/build_base.html:76 msgid "Duplicate Build" msgstr "重复构件" +#: build/templates/build/build_base.html:76 +#, fuzzy +#| msgid "Edit Build" +msgid "Hold Build" +msgstr "编辑生产" + #: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "取消生产" + +#: build/templates/build/build_base.html:82 msgid "Delete Build" msgstr "删除生产" -#: build/templates/build/build_base.html:84 -#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:87 +#, fuzzy +#| msgid "Delete Build" +msgid "Isueue Build" +msgstr "删除生产" + +#: build/templates/build/build_base.html:88 +#, fuzzy +#| msgid "Issued By" +msgid "Issue Build" +msgstr "发布者" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 msgid "Complete Build" msgstr "生产完成" -#: build/templates/build/build_base.html:107 +#: build/templates/build/build_base.html:115 msgid "Build Description" msgstr "构建描述" -#: build/templates/build/build_base.html:117 +#: build/templates/build/build_base.html:125 msgid "No build outputs have been created for this build order" msgstr "针对此生产订单,尚未创建生产产出" -#: build/templates/build/build_base.html:124 +#: build/templates/build/build_base.html:132 msgid "Build Order is ready to mark as completed" msgstr "构建订单已准备好标记为已完成" -#: build/templates/build/build_base.html:129 +#: build/templates/build/build_base.html:137 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "创建订单无法完成,因为未完成的输出" -#: build/templates/build/build_base.html:134 +#: build/templates/build/build_base.html:142 msgid "Required build quantity has not yet been completed" msgstr "所需生产数量尚未完成" -#: build/templates/build/build_base.html:139 +#: build/templates/build/build_base.html:147 msgid "Stock has not been fully allocated to this Build Order" msgstr "库存尚未被完全分配到此构建订单" -#: build/templates/build/build_base.html:160 +#: build/templates/build/build_base.html:168 #: build/templates/build/detail.html:138 order/models.py:309 -#: order/models.py:1316 order/serializers.py:175 -#: order/templates/order/order_base.html:186 -#: order/templates/order/return_order_base.html:164 -#: order/templates/order/sales_order_base.html:196 +#: order/models.py:1391 order/serializers.py:175 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 #: report/templates/report/inventree_build_order_report.html:125 -#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1836 -#: templates/js/translated/purchase_order.js:1810 -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/build.js:2411 templates/js/translated/part.js:1834 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 #: templates/js/translated/return_order.js:346 -#: templates/js/translated/return_order.js:750 +#: templates/js/translated/return_order.js:749 #: templates/js/translated/sales_order.js:871 #: templates/js/translated/sales_order.js:1903 msgid "Target Date" msgstr "预计日期" -#: build/templates/build/build_base.html:165 +#: build/templates/build/build_base.html:173 #, python-format msgid "This build was due on %(target)s" msgstr "此次生产的截止日期为 %(target)s" -#: build/templates/build/build_base.html:165 -#: build/templates/build/build_base.html:222 -#: order/templates/order/order_base.html:122 -#: order/templates/order/return_order_base.html:117 -#: order/templates/order/sales_order_base.html:126 +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 #: templates/js/translated/table_filters.js:98 -#: templates/js/translated/table_filters.js:524 -#: templates/js/translated/table_filters.js:626 -#: templates/js/translated/table_filters.js:667 +#: templates/js/translated/table_filters.js:538 +#: templates/js/translated/table_filters.js:640 +#: templates/js/translated/table_filters.js:681 msgid "Overdue" msgstr "逾期" -#: build/templates/build/build_base.html:177 +#: build/templates/build/build_base.html:185 #: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 msgid "Completed Outputs" msgstr "已完成输出" -#: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1384 order/models.py:854 -#: order/models.py:1575 order/models.py:1690 order/models.py:1849 +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1404 order/models.py:893 +#: order/models.py:1650 order/models.py:1765 order/models.py:1924 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_report.html:135 @@ -1929,33 +1991,45 @@ msgstr "已完成输出" #: templates/js/translated/pricing.js:929 #: templates/js/translated/sales_order.js:805 #: templates/js/translated/sales_order.js:1028 -#: templates/js/translated/stock.js:3005 +#: templates/js/translated/stock.js:3008 msgid "Sales Order" msgstr "销售订单" -#: build/templates/build/build_base.html:197 +#: build/templates/build/build_base.html:205 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_report.html:152 #: templates/js/translated/table_filters.js:24 msgid "Issued By" msgstr "发布者" -#: build/templates/build/build_base.html:211 -#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2328 msgid "Priority" msgstr "优先级" -#: build/templates/build/build_base.html:269 +#: build/templates/build/build_base.html:267 +#, fuzzy +#| msgid "New Build Order" +msgid "Issue Build Order" +msgstr "新建生产订单" + +#: build/templates/build/build_base.html:271 +#, fuzzy +#| msgid "New Sales Order" +msgid "Issue this Build Order?" +msgstr "新建销售订单" + +#: build/templates/build/build_base.html:302 msgid "Delete Build Order" msgstr "删除生产订单" -#: build/templates/build/build_base.html:279 +#: build/templates/build/build_base.html:312 #, fuzzy #| msgid "Build Order" msgid "Build Order QR Code" msgstr "生产订单" -#: build/templates/build/build_base.html:291 +#: build/templates/build/build_base.html:324 #, fuzzy #| msgid "Print Build Orders" msgid "Link Barcode to Build Order" @@ -1973,8 +2047,8 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1457 -#: templates/js/translated/purchase_order.js:2260 +#: build/templates/build/detail.html:49 order/models.py:1532 +#: templates/js/translated/purchase_order.js:2259 msgid "Destination" msgstr "目的地" @@ -1988,21 +2062,21 @@ msgstr "已分配的部件" #: build/templates/build/detail.html:80 stock/admin.py:162 #: stock/templates/stock/item_base.html:162 -#: templates/js/translated/build.js:1555 -#: templates/js/translated/model_renderers.js:241 +#: templates/js/translated/build.js:1553 +#: templates/js/translated/model_renderers.js:242 #: templates/js/translated/purchase_order.js:1326 -#: templates/js/translated/stock.js:1135 templates/js/translated/stock.js:1236 -#: templates/js/translated/stock.js:2271 templates/js/translated/stock.js:3208 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2275 templates/js/translated/stock.js:3211 #: templates/js/translated/table_filters.js:313 #: templates/js/translated/table_filters.js:404 msgid "Batch" msgstr "批量" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:173 -#: order/templates/order/return_order_base.html:151 -#: order/templates/order/sales_order_base.html:190 -#: templates/js/translated/build.js:2374 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2371 msgid "Created" msgstr "已创建" @@ -2011,8 +2085,8 @@ msgid "No target date set" msgstr "无预计日期" #: build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:206 -#: templates/js/translated/table_filters.js:689 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:703 msgid "Completed" msgstr "已完成" @@ -2095,7 +2169,13 @@ msgstr "最低库存" msgid "Completed Build Outputs" msgstr "已完成构建输出" -#: build/templates/build/detail.html:273 build/templates/build/sidebar.html:23 +#: build/templates/build/detail.html:273 +#, fuzzy +#| msgid "Build status" +msgid "Build test statistics" +msgstr "生产状态" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 #: company/templates/company/detail.html:229 #: company/templates/company/manufacturer_part.html:141 #: company/templates/company/manufacturer_part_sidebar.html:9 @@ -2105,27 +2185,27 @@ msgstr "已完成构建输出" #: order/templates/order/return_order_detail.html:70 #: order/templates/order/return_order_sidebar.html:7 #: order/templates/order/sales_order_detail.html:124 -#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217 -#: part/templates/part/part_sidebar.html:61 stock/templates/stock/item.html:110 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 #: stock/templates/stock/stock_sidebar.html:23 msgid "Attachments" msgstr "附件" -#: build/templates/build/detail.html:288 +#: build/templates/build/detail.html:303 msgid "Build Notes" msgstr "生产备注" -#: build/templates/build/detail.html:442 +#: build/templates/build/detail.html:457 msgid "Allocation Complete" msgstr "分配完成" -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:458 #, fuzzy #| msgid "Required stock has not been fully allocated" msgid "All lines have been fully allocated" msgstr "所需库存尚未完全分配" -#: build/templates/build/index.html:18 part/templates/part/detail.html:319 +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 msgid "New Build Order" msgstr "新建生产订单" @@ -2147,19 +2227,26 @@ msgstr "" msgid "Incomplete Outputs" msgstr "未完成输出" -#: common/api.py:690 +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +#, fuzzy +#| msgid "Destination" +msgid "Test Statistics" +msgstr "目的地" + +#: common/api.py:692 #, fuzzy #| msgid "Link" msgid "Is Link" msgstr "链接" -#: common/api.py:698 +#: common/api.py:700 #, fuzzy #| msgid "File" msgid "Is File" msgstr "文件" -#: common/api.py:740 +#: common/api.py:742 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2226,1714 +2313,1724 @@ msgstr "{name.title()} 文件" msgid "Select {name} file to upload" msgstr "选择 {name} 文件上传" -#: common/models.py:73 +#: common/models.py:86 msgid "Updated" msgstr "已更新" -#: common/models.py:74 +#: common/models.py:87 msgid "Timestamp of last update" msgstr "最后一次更新时间" -#: common/models.py:107 +#: common/models.py:120 msgid "Site URL is locked by configuration" msgstr "" -#: common/models.py:137 +#: common/models.py:150 msgid "Unique project code" msgstr "" -#: common/models.py:144 +#: common/models.py:157 #, fuzzy #| msgid "Part description" msgid "Project description" msgstr "商品描述" -#: common/models.py:153 +#: common/models.py:166 #, fuzzy #| msgid "User or group responsible for this order" msgid "User or group responsible for this project" msgstr "负责此订单的用户或群组" -#: common/models.py:770 +#: common/models.py:783 msgid "Settings key (must be unique - case insensitive)" msgstr "设置键值(必须是唯一的 - 大小写不敏感)" -#: common/models.py:774 +#: common/models.py:787 msgid "Settings value" msgstr "设定值" -#: common/models.py:826 +#: common/models.py:839 msgid "Chosen value is not a valid option" msgstr "选择的值不是一个有效的选项" -#: common/models.py:842 +#: common/models.py:855 msgid "Value must be a boolean value" msgstr "值必须是布尔量" -#: common/models.py:850 +#: common/models.py:863 msgid "Value must be an integer value" msgstr "值必须为整数" -#: common/models.py:887 +#: common/models.py:900 msgid "Key string must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:1119 +#: common/models.py:1132 msgid "No group" msgstr "无群组" -#: common/models.py:1218 +#: common/models.py:1231 msgid "Restart required" msgstr "需要重启" -#: common/models.py:1220 +#: common/models.py:1233 msgid "A setting has been changed which requires a server restart" msgstr "设置已更改,需要服务器重启" -#: common/models.py:1227 +#: common/models.py:1240 #, fuzzy #| msgid "Printing Actions" msgid "Pending migrations" msgstr "打印操作" -#: common/models.py:1228 +#: common/models.py:1241 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1233 +#: common/models.py:1246 msgid "Server Instance Name" msgstr "服务器实例名称" -#: common/models.py:1235 +#: common/models.py:1248 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1239 +#: common/models.py:1252 msgid "Use instance name" msgstr "" -#: common/models.py:1240 +#: common/models.py:1253 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1245 +#: common/models.py:1258 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1246 +#: common/models.py:1259 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1251 company/models.py:111 company/models.py:112 +#: common/models.py:1264 company/models.py:111 company/models.py:112 msgid "Company name" msgstr "公司名称" -#: common/models.py:1252 +#: common/models.py:1265 msgid "Internal company name" msgstr "内部公司名称" -#: common/models.py:1256 +#: common/models.py:1269 msgid "Base URL" msgstr "" -#: common/models.py:1257 +#: common/models.py:1270 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1263 +#: common/models.py:1276 msgid "Default Currency" msgstr "" -#: common/models.py:1264 +#: common/models.py:1277 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1270 +#: common/models.py:1283 msgid "Supported Currencies" msgstr "" -#: common/models.py:1271 +#: common/models.py:1284 #, fuzzy #| msgid "Not a valid currency code" msgid "List of supported currency codes" msgstr "不是有效的货币代码" -#: common/models.py:1277 +#: common/models.py:1290 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1279 +#: common/models.py:1292 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1282 common/models.py:1338 common/models.py:1351 -#: common/models.py:1359 common/models.py:1368 common/models.py:1377 -#: common/models.py:1607 common/models.py:1629 common/models.py:1744 -#: common/models.py:2117 +#: common/models.py:1295 common/models.py:1351 common/models.py:1364 +#: common/models.py:1372 common/models.py:1381 common/models.py:1390 +#: common/models.py:1627 common/models.py:1649 common/models.py:1764 +#: common/models.py:2138 msgid "days" msgstr "天" -#: common/models.py:1286 +#: common/models.py:1299 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1287 +#: common/models.py:1300 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1292 +#: common/models.py:1305 msgid "Download from URL" msgstr "" -#: common/models.py:1294 +#: common/models.py:1307 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1300 +#: common/models.py:1313 msgid "Download Size Limit" msgstr "" -#: common/models.py:1301 +#: common/models.py:1314 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1307 +#: common/models.py:1320 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1309 +#: common/models.py:1322 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1314 +#: common/models.py:1327 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1315 +#: common/models.py:1328 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1320 +#: common/models.py:1333 msgid "Require confirm" msgstr "" -#: common/models.py:1321 +#: common/models.py:1334 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1326 +#: common/models.py:1339 msgid "Tree Depth" msgstr "" -#: common/models.py:1328 +#: common/models.py:1341 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1334 +#: common/models.py:1347 msgid "Update Check Interval" msgstr "" -#: common/models.py:1335 +#: common/models.py:1348 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1341 +#: common/models.py:1354 msgid "Automatic Backup" msgstr "" -#: common/models.py:1342 +#: common/models.py:1355 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1347 +#: common/models.py:1360 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1348 +#: common/models.py:1361 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1354 +#: common/models.py:1367 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1356 +#: common/models.py:1369 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1363 +#: common/models.py:1376 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1365 +#: common/models.py:1378 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1372 +#: common/models.py:1385 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1374 +#: common/models.py:1387 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1381 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1394 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1382 +#: common/models.py:1395 #, fuzzy #| msgid "Enable barcode scanner support" msgid "Enable barcode scanner support in the web interface" msgstr "启用条形码扫描支持" -#: common/models.py:1387 +#: common/models.py:1400 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1388 +#: common/models.py:1401 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1394 +#: common/models.py:1407 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1395 +#: common/models.py:1408 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1400 +#: common/models.py:1413 #, fuzzy #| msgid "Barcode Data" msgid "Barcode Show Data" msgstr "条码数据" -#: common/models.py:1401 +#: common/models.py:1414 msgid "Display barcode data in browser as text" msgstr "" -#: common/models.py:1406 +#: common/models.py:1419 +#, fuzzy +#| msgid "Barcode Settings" +msgid "Barcode Generation Plugin" +msgstr "条形码设置" + +#: common/models.py:1420 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1425 #, fuzzy #| msgid "Part description" msgid "Part Revisions" msgstr "商品描述" -#: common/models.py:1407 +#: common/models.py:1426 #, fuzzy #| msgid "Enable internal prices for parts" msgid "Enable revision field for Part" msgstr "启用内部商品价格" -#: common/models.py:1412 +#: common/models.py:1431 msgid "Assembly Revision Only" msgstr "" -#: common/models.py:1413 +#: common/models.py:1432 msgid "Only allow revisions for assembly parts" msgstr "" -#: common/models.py:1418 +#: common/models.py:1437 #, fuzzy #| msgid "Removed from assembly" msgid "Allow Deletion from Assembly" msgstr "已从组装中删除" -#: common/models.py:1419 +#: common/models.py:1438 msgid "Allow deletion of parts which are used in an assembly" msgstr "" -#: common/models.py:1424 +#: common/models.py:1443 msgid "IPN Regex" msgstr "" -#: common/models.py:1425 +#: common/models.py:1444 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1428 +#: common/models.py:1447 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1429 +#: common/models.py:1448 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1434 +#: common/models.py:1453 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1435 +#: common/models.py:1454 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1440 +#: common/models.py:1459 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1441 +#: common/models.py:1460 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1446 +#: common/models.py:1465 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1447 +#: common/models.py:1466 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1452 +#: common/models.py:1471 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1472 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1458 +#: common/models.py:1477 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1459 +#: common/models.py:1478 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1464 part/admin.py:108 part/models.py:3907 +#: common/models.py:1483 part/admin.py:108 part/models.py:3938 #: report/models.py:294 report/models.py:361 report/serializers.py:90 #: report/serializers.py:131 stock/serializers.py:232 #: templates/js/translated/table_filters.js:139 -#: templates/js/translated/table_filters.js:772 +#: templates/js/translated/table_filters.js:786 msgid "Template" msgstr "模板" -#: common/models.py:1465 +#: common/models.py:1484 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1470 part/admin.py:91 part/admin.py:425 part/models.py:1122 -#: templates/js/translated/bom.js:1639 +#: common/models.py:1489 part/admin.py:91 part/admin.py:428 part/models.py:1153 +#: part/serializers.py:1573 templates/js/translated/bom.js:1639 #: templates/js/translated/table_filters.js:330 -#: templates/js/translated/table_filters.js:726 +#: templates/js/translated/table_filters.js:740 msgid "Assembly" msgstr "组装" -#: common/models.py:1471 +#: common/models.py:1490 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1476 part/admin.py:95 part/models.py:1128 -#: templates/js/translated/table_filters.js:734 +#: common/models.py:1495 part/admin.py:95 part/models.py:1159 +#: part/serializers.py:1594 templates/js/translated/table_filters.js:748 msgid "Component" msgstr "组件" -#: common/models.py:1477 +#: common/models.py:1496 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1482 part/admin.py:100 part/models.py:1140 +#: common/models.py:1501 part/admin.py:100 part/models.py:1171 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:1483 +#: common/models.py:1502 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1488 part/admin.py:104 part/models.py:1146 -#: templates/js/translated/table_filters.js:760 +#: common/models.py:1507 part/admin.py:104 part/models.py:1177 +#: templates/js/translated/table_filters.js:774 msgid "Salable" msgstr "可销售" -#: common/models.py:1489 +#: common/models.py:1508 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1495 +#: common/models.py:1514 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1500 part/admin.py:117 part/models.py:1162 +#: common/models.py:1519 part/admin.py:117 part/models.py:1193 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 -#: templates/js/translated/table_filters.js:780 +#: templates/js/translated/table_filters.js:794 msgid "Virtual" msgstr "虚拟" -#: common/models.py:1501 +#: common/models.py:1520 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:1506 +#: common/models.py:1525 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:1507 +#: common/models.py:1526 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:1512 +#: common/models.py:1531 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:1513 +#: common/models.py:1532 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1518 +#: common/models.py:1537 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1519 +#: common/models.py:1538 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1524 templates/js/translated/part.js:107 +#: common/models.py:1543 templates/js/translated/part.js:108 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1526 +#: common/models.py:1545 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1532 +#: common/models.py:1551 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1533 +#: common/models.py:1552 msgid "Format to display the part name" msgstr "" -#: common/models.py:1539 +#: common/models.py:1558 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1540 +#: common/models.py:1559 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1544 +#: common/models.py:1564 #, fuzzy #| msgid "Parameter units" msgid "Enforce Parameter Units" msgstr "参数单位" -#: common/models.py:1546 +#: common/models.py:1566 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1552 +#: common/models.py:1572 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1554 +#: common/models.py:1574 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1565 +#: common/models.py:1585 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1567 +#: common/models.py:1587 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1578 +#: common/models.py:1598 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1580 +#: common/models.py:1600 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1586 +#: common/models.py:1606 msgid "Purchase History Override" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1594 +#: common/models.py:1614 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1596 +#: common/models.py:1616 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1602 +#: common/models.py:1622 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1604 +#: common/models.py:1624 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1611 +#: common/models.py:1631 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1612 +#: common/models.py:1632 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1617 +#: common/models.py:1637 msgid "Active Variants Only" msgstr "" -#: common/models.py:1619 +#: common/models.py:1639 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1625 +#: common/models.py:1645 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1627 +#: common/models.py:1647 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1634 +#: common/models.py:1654 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1635 +#: common/models.py:1655 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1640 +#: common/models.py:1660 msgid "Internal Price Override" msgstr "" -#: common/models.py:1642 +#: common/models.py:1662 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1648 +#: common/models.py:1668 msgid "Enable label printing" msgstr "" -#: common/models.py:1649 +#: common/models.py:1669 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1654 +#: common/models.py:1674 msgid "Label Image DPI" msgstr "" -#: common/models.py:1656 +#: common/models.py:1676 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1662 +#: common/models.py:1682 msgid "Enable Reports" msgstr "" -#: common/models.py:1663 +#: common/models.py:1683 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1668 templates/stats.html:25 +#: common/models.py:1688 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1669 +#: common/models.py:1689 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1674 +#: common/models.py:1694 #, fuzzy #| msgid "No Reports Found" msgid "Log Report Errors" msgstr "没有找到报表" -#: common/models.py:1675 +#: common/models.py:1695 msgid "Log errors which occur when generating reports" msgstr "" -#: common/models.py:1680 plugin/builtin/labels/label_sheet.py:29 +#: common/models.py:1700 plugin/builtin/labels/label_sheet.py:29 #: report/models.py:302 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1681 +#: common/models.py:1701 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1686 +#: common/models.py:1706 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1687 +#: common/models.py:1707 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1692 +#: common/models.py:1712 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1694 +#: common/models.py:1714 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1700 +#: common/models.py:1720 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1701 +#: common/models.py:1721 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1706 +#: common/models.py:1726 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1707 +#: common/models.py:1727 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1712 +#: common/models.py:1732 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1714 +#: common/models.py:1734 msgid "Determines default behavior when a stock item is depleted" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Batch Code Template" msgstr "" -#: common/models.py:1722 +#: common/models.py:1742 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1733 +#: common/models.py:1753 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1734 +#: common/models.py:1754 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1739 +#: common/models.py:1759 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1741 +#: common/models.py:1761 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1748 +#: common/models.py:1768 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1749 +#: common/models.py:1769 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1754 +#: common/models.py:1774 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1755 +#: common/models.py:1775 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1760 +#: common/models.py:1780 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1761 +#: common/models.py:1781 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1765 +#: common/models.py:1786 #, fuzzy #| msgid "Select Stock Items" msgid "Show Installed Stock Items" msgstr "选择库存项" -#: common/models.py:1766 +#: common/models.py:1787 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1771 +#: common/models.py:1792 msgid "Check BOM when installing items" msgstr "" -#: common/models.py:1773 +#: common/models.py:1794 msgid "Installed stock items must exist in the BOM for the parent part" msgstr "" -#: common/models.py:1779 +#: common/models.py:1800 msgid "Allow Out of Stock Transfer" msgstr "" -#: common/models.py:1781 +#: common/models.py:1802 msgid "Allow stock items which are not in stock to be transferred between stock locations" msgstr "" -#: common/models.py:1787 +#: common/models.py:1808 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1789 +#: common/models.py:1810 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1795 common/models.py:1843 common/models.py:1865 -#: common/models.py:1901 +#: common/models.py:1816 common/models.py:1864 common/models.py:1886 +#: common/models.py:1922 #, fuzzy #| msgid "Responsible" msgid "Require Responsible Owner" msgstr "责任人" -#: common/models.py:1796 common/models.py:1844 common/models.py:1866 -#: common/models.py:1902 +#: common/models.py:1817 common/models.py:1865 common/models.py:1887 +#: common/models.py:1923 msgid "A responsible owner must be assigned to each order" msgstr "" -#: common/models.py:1801 +#: common/models.py:1822 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Active Part" msgstr "生产以分配部件" -#: common/models.py:1802 +#: common/models.py:1823 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for inactive parts" msgstr "打印构建订单报告" -#: common/models.py:1807 +#: common/models.py:1828 #, fuzzy #| msgid "Build to allocate parts" msgid "Require Locked Part" msgstr "生产以分配部件" -#: common/models.py:1808 +#: common/models.py:1829 #, fuzzy #| msgid "Print build order report" msgid "Prevent build order creation for unlocked parts" msgstr "打印构建订单报告" -#: common/models.py:1813 +#: common/models.py:1834 msgid "Require Valid BOM" msgstr "" -#: common/models.py:1815 +#: common/models.py:1836 msgid "Prevent build order creation unless BOM has been validated" msgstr "" -#: common/models.py:1821 +#: common/models.py:1842 msgid "Block Until Tests Pass" msgstr "" -#: common/models.py:1823 +#: common/models.py:1844 msgid "Prevent build outputs from being completed until all required tests pass" msgstr "" -#: common/models.py:1829 +#: common/models.py:1850 #, fuzzy #| msgid "Sales Orders" msgid "Enable Return Orders" msgstr "销售订单" -#: common/models.py:1830 +#: common/models.py:1851 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1835 +#: common/models.py:1856 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order Reference Pattern" msgstr "相关生产订单" -#: common/models.py:1837 +#: common/models.py:1858 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1849 +#: common/models.py:1870 #, fuzzy #| msgid "Complete Build Order" msgid "Edit Completed Return Orders" msgstr "生产订单完成" -#: common/models.py:1851 +#: common/models.py:1872 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1857 +#: common/models.py:1878 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1859 +#: common/models.py:1880 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1871 +#: common/models.py:1892 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1872 +#: common/models.py:1893 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1877 +#: common/models.py:1898 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1879 +#: common/models.py:1900 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1885 +#: common/models.py:1906 #, fuzzy #| msgid "Build Order is incomplete" msgid "Mark Shipped Orders as Complete" msgstr "生产订单未完成" -#: common/models.py:1887 +#: common/models.py:1908 msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" msgstr "" -#: common/models.py:1893 +#: common/models.py:1914 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1895 +#: common/models.py:1916 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1907 +#: common/models.py:1928 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1909 +#: common/models.py:1930 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1915 +#: common/models.py:1936 #, fuzzy #| msgid "Create Purchase Order" msgid "Auto Complete Purchase Orders" msgstr "创建采购订单" -#: common/models.py:1917 +#: common/models.py:1938 msgid "Automatically mark purchase orders as complete when all line items are received" msgstr "" -#: common/models.py:1924 +#: common/models.py:1945 msgid "Enable password forgot" msgstr "" -#: common/models.py:1925 +#: common/models.py:1946 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1930 +#: common/models.py:1951 msgid "Enable registration" msgstr "" -#: common/models.py:1931 +#: common/models.py:1952 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1936 +#: common/models.py:1957 msgid "Enable SSO" msgstr "" -#: common/models.py:1937 +#: common/models.py:1958 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1942 +#: common/models.py:1963 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1944 +#: common/models.py:1965 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1950 +#: common/models.py:1971 msgid "Enable SSO group sync" msgstr "" -#: common/models.py:1952 +#: common/models.py:1973 msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" msgstr "" -#: common/models.py:1958 +#: common/models.py:1979 msgid "SSO group key" msgstr "" -#: common/models.py:1960 +#: common/models.py:1981 msgid "The name of the groups claim attribute provided by the IdP" msgstr "" -#: common/models.py:1966 +#: common/models.py:1987 msgid "SSO group map" msgstr "" -#: common/models.py:1968 +#: common/models.py:1989 msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." msgstr "" -#: common/models.py:1974 +#: common/models.py:1995 msgid "Remove groups outside of SSO" msgstr "" -#: common/models.py:1976 +#: common/models.py:1997 msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" msgstr "" -#: common/models.py:1982 +#: common/models.py:2003 msgid "Email required" msgstr "" -#: common/models.py:1983 +#: common/models.py:2004 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1988 +#: common/models.py:2009 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1990 +#: common/models.py:2011 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1996 +#: common/models.py:2017 msgid "Mail twice" msgstr "" -#: common/models.py:1997 +#: common/models.py:2018 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:2002 +#: common/models.py:2023 msgid "Password twice" msgstr "" -#: common/models.py:2003 +#: common/models.py:2024 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:2008 +#: common/models.py:2029 msgid "Allowed domains" msgstr "" -#: common/models.py:2010 +#: common/models.py:2031 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:2016 +#: common/models.py:2037 msgid "Group on signup" msgstr "" -#: common/models.py:2018 +#: common/models.py:2039 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." msgstr "" -#: common/models.py:2024 +#: common/models.py:2045 msgid "Enforce MFA" msgstr "" -#: common/models.py:2025 +#: common/models.py:2046 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:2030 +#: common/models.py:2051 msgid "Check plugins on startup" msgstr "" -#: common/models.py:2032 +#: common/models.py:2053 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:2040 +#: common/models.py:2061 msgid "Check for plugin updates" msgstr "" -#: common/models.py:2041 +#: common/models.py:2062 msgid "Enable periodic checks for updates to installed plugins" msgstr "" -#: common/models.py:2047 +#: common/models.py:2068 msgid "Enable URL integration" msgstr "" -#: common/models.py:2048 +#: common/models.py:2069 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:2054 +#: common/models.py:2075 msgid "Enable navigation integration" msgstr "" -#: common/models.py:2055 +#: common/models.py:2076 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:2061 +#: common/models.py:2082 msgid "Enable app integration" msgstr "" -#: common/models.py:2062 +#: common/models.py:2083 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:2068 +#: common/models.py:2089 msgid "Enable schedule integration" msgstr "" -#: common/models.py:2069 +#: common/models.py:2090 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:2075 +#: common/models.py:2096 msgid "Enable event integration" msgstr "" -#: common/models.py:2076 +#: common/models.py:2097 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:2082 +#: common/models.py:2103 #, fuzzy #| msgid "Sales Orders" msgid "Enable project codes" msgstr "销售订单" -#: common/models.py:2083 +#: common/models.py:2104 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2088 +#: common/models.py:2109 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2090 +#: common/models.py:2111 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2096 +#: common/models.py:2117 #, fuzzy #| msgid "Exclude Location" msgid "Exclude External Locations" msgstr "排除地点" -#: common/models.py:2098 +#: common/models.py:2119 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从该选定的仓储地点排除库存项" -#: common/models.py:2104 +#: common/models.py:2125 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2106 +#: common/models.py:2127 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2112 +#: common/models.py:2133 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2114 +#: common/models.py:2135 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2121 +#: common/models.py:2142 msgid "Display Users full names" msgstr "" -#: common/models.py:2122 +#: common/models.py:2143 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2127 +#: common/models.py:2148 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2128 +#: common/models.py:2149 #, fuzzy #| msgid "Enable generation of test reports" msgid "Enable test station data collection for test results" msgstr "启用生成测试报表" -#: common/models.py:2140 common/models.py:2520 +#: common/models.py:2161 common/models.py:2541 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2183 +#: common/models.py:2204 #, fuzzy #| msgid "Build to allocate parts" msgid "Hide inactive parts" msgstr "生产以分配部件" -#: common/models.py:2185 +#: common/models.py:2206 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2191 +#: common/models.py:2212 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2192 +#: common/models.py:2213 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2197 +#: common/models.py:2218 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2198 +#: common/models.py:2219 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2203 +#: common/models.py:2224 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:2204 +#: common/models.py:2225 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2209 +#: common/models.py:2230 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2210 +#: common/models.py:2231 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2215 +#: common/models.py:2236 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2216 +#: common/models.py:2237 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2221 +#: common/models.py:2242 msgid "Show low stock" msgstr "" -#: common/models.py:2222 +#: common/models.py:2243 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2227 +#: common/models.py:2248 msgid "Show depleted stock" msgstr "" -#: common/models.py:2228 +#: common/models.py:2249 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2233 +#: common/models.py:2254 msgid "Show needed stock" msgstr "" -#: common/models.py:2234 +#: common/models.py:2255 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2239 +#: common/models.py:2260 msgid "Show expired stock" msgstr "" -#: common/models.py:2240 +#: common/models.py:2261 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2245 +#: common/models.py:2266 msgid "Show stale stock" msgstr "" -#: common/models.py:2246 +#: common/models.py:2267 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2251 +#: common/models.py:2272 msgid "Show pending builds" msgstr "" -#: common/models.py:2252 +#: common/models.py:2273 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2257 +#: common/models.py:2278 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:2258 +#: common/models.py:2279 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2263 +#: common/models.py:2284 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2264 +#: common/models.py:2285 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2269 +#: common/models.py:2290 msgid "Show overdue POs" msgstr "" -#: common/models.py:2270 +#: common/models.py:2291 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2275 +#: common/models.py:2296 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2276 +#: common/models.py:2297 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2281 +#: common/models.py:2302 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2282 +#: common/models.py:2303 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2287 +#: common/models.py:2308 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2288 +#: common/models.py:2309 #, fuzzy #| msgid "Show latest parts on the homepage" msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2293 +#: common/models.py:2314 msgid "Show News" msgstr "" -#: common/models.py:2294 +#: common/models.py:2315 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2299 +#: common/models.py:2320 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2301 +#: common/models.py:2322 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2307 +#: common/models.py:2328 msgid "Default label printer" msgstr "" -#: common/models.py:2309 +#: common/models.py:2330 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2315 +#: common/models.py:2336 msgid "Inline report display" msgstr "" -#: common/models.py:2317 +#: common/models.py:2338 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2323 +#: common/models.py:2344 msgid "Search Parts" msgstr "" -#: common/models.py:2324 +#: common/models.py:2345 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2329 +#: common/models.py:2350 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2330 +#: common/models.py:2351 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2335 +#: common/models.py:2356 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2336 +#: common/models.py:2357 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2341 +#: common/models.py:2362 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2342 +#: common/models.py:2363 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2347 +#: common/models.py:2368 msgid "Search Categories" msgstr "" -#: common/models.py:2348 +#: common/models.py:2369 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2353 +#: common/models.py:2374 msgid "Search Stock" msgstr "" -#: common/models.py:2354 +#: common/models.py:2375 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2359 +#: common/models.py:2380 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2361 +#: common/models.py:2382 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2367 +#: common/models.py:2388 msgid "Search Locations" msgstr "" -#: common/models.py:2368 +#: common/models.py:2389 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2373 +#: common/models.py:2394 msgid "Search Companies" msgstr "" -#: common/models.py:2374 +#: common/models.py:2395 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2379 +#: common/models.py:2400 msgid "Search Build Orders" msgstr "" -#: common/models.py:2380 +#: common/models.py:2401 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2385 +#: common/models.py:2406 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2386 +#: common/models.py:2407 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2391 +#: common/models.py:2412 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2393 +#: common/models.py:2414 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2399 +#: common/models.py:2420 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2400 +#: common/models.py:2421 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2405 +#: common/models.py:2426 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2407 +#: common/models.py:2428 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2413 +#: common/models.py:2434 #, fuzzy #| msgid "Purchase Orders" msgid "Search Return Orders" msgstr "采购订单" -#: common/models.py:2414 +#: common/models.py:2435 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2419 +#: common/models.py:2440 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2421 +#: common/models.py:2442 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2427 +#: common/models.py:2448 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2429 +#: common/models.py:2450 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2435 +#: common/models.py:2456 #, fuzzy #| msgid "Search" msgid "Regex Search" msgstr "搜索" -#: common/models.py:2436 +#: common/models.py:2457 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2441 +#: common/models.py:2462 msgid "Whole Word Search" msgstr "" -#: common/models.py:2442 +#: common/models.py:2463 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2447 +#: common/models.py:2468 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2448 +#: common/models.py:2469 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2453 +#: common/models.py:2474 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2454 +#: common/models.py:2475 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2459 +#: common/models.py:2480 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2460 +#: common/models.py:2481 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2465 +#: common/models.py:2486 msgid "Date Format" msgstr "" -#: common/models.py:2466 +#: common/models.py:2487 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2479 part/templates/part/detail.html:41 +#: common/models.py:2500 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2480 +#: common/models.py:2501 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2485 part/templates/part/detail.html:62 +#: common/models.py:2506 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2487 +#: common/models.py:2508 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2493 +#: common/models.py:2514 msgid "Table String Length" msgstr "" -#: common/models.py:2495 +#: common/models.py:2516 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2501 +#: common/models.py:2522 msgid "Receive error reports" msgstr "" -#: common/models.py:2502 +#: common/models.py:2523 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2507 +#: common/models.py:2528 msgid "Last used printing machines" msgstr "" -#: common/models.py:2508 +#: common/models.py:2529 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2528 common/models.py:2529 common/models.py:2678 -#: common/models.py:2679 common/models.py:2924 common/models.py:2925 -#: common/models.py:3251 common/models.py:3252 importer/models.py:87 -#: part/models.py:3269 part/models.py:3356 part/models.py:3430 -#: part/models.py:3458 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2549 common/models.py:2550 common/models.py:2707 +#: common/models.py:2708 common/models.py:2953 common/models.py:2954 +#: common/models.py:3280 common/models.py:3281 importer/models.py:88 +#: part/models.py:3300 part/models.py:3387 part/models.py:3461 +#: part/models.py:3489 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 -#: templates/js/translated/stock.js:3117 users/models.py:111 +#: templates/js/translated/stock.js:3120 users/models.py:111 msgid "User" msgstr "用户" -#: common/models.py:2551 +#: common/models.py:2572 msgid "Price break quantity" msgstr "" -#: common/models.py:2558 company/serializers.py:506 order/admin.py:42 -#: order/models.py:1355 order/models.py:2301 -#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1891 +#: common/models.py:2579 company/serializers.py:513 order/admin.py:42 +#: order/models.py:1430 order/models.py:2417 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1889 #: templates/js/translated/pricing.js:621 -#: templates/js/translated/return_order.js:740 +#: templates/js/translated/return_order.js:739 msgid "Price" msgstr "价格" -#: common/models.py:2559 +#: common/models.py:2580 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2655 common/models.py:2840 +#: common/models.py:2684 common/models.py:2869 msgid "Endpoint" msgstr "" -#: common/models.py:2656 +#: common/models.py:2685 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2666 +#: common/models.py:2695 msgid "Name for this webhook" msgstr "" -#: common/models.py:2670 +#: common/models.py:2699 msgid "Is this webhook active" msgstr "" -#: common/models.py:2686 users/models.py:159 +#: common/models.py:2715 users/models.py:159 msgid "Token" msgstr "令牌" -#: common/models.py:2687 +#: common/models.py:2716 msgid "Token for access" msgstr "" -#: common/models.py:2695 +#: common/models.py:2724 msgid "Secret" msgstr "" -#: common/models.py:2696 +#: common/models.py:2725 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2804 +#: common/models.py:2833 msgid "Message ID" msgstr "" -#: common/models.py:2805 +#: common/models.py:2834 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2813 +#: common/models.py:2842 msgid "Host" msgstr "" -#: common/models.py:2814 +#: common/models.py:2843 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2822 +#: common/models.py:2851 msgid "Header" msgstr "" -#: common/models.py:2823 +#: common/models.py:2852 msgid "Header of this message" msgstr "" -#: common/models.py:2830 +#: common/models.py:2859 msgid "Body" msgstr "" -#: common/models.py:2831 +#: common/models.py:2860 msgid "Body of this message" msgstr "" -#: common/models.py:2841 +#: common/models.py:2870 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2846 +#: common/models.py:2875 msgid "Worked on" msgstr "" -#: common/models.py:2847 +#: common/models.py:2876 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2973 +#: common/models.py:3002 msgid "Id" msgstr "" -#: common/models.py:2975 templates/js/translated/company.js:965 +#: common/models.py:3004 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2977 common/models.py:3235 company/models.py:149 -#: company/models.py:446 company/models.py:506 company/models.py:806 -#: order/models.py:303 order/models.py:1310 order/models.py:1742 -#: part/admin.py:55 part/models.py:1025 +#: common/models.py:3006 common/models.py:3264 company/models.py:149 +#: company/models.py:446 company/models.py:512 company/models.py:818 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 +#: part/admin.py:55 part/models.py:1056 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_report.html:164 #: stock/admin.py:229 templates/js/translated/company.js:1319 -#: templates/js/translated/company.js:1673 templates/js/translated/order.js:351 -#: templates/js/translated/part.js:2475 -#: templates/js/translated/purchase_order.js:2111 -#: templates/js/translated/purchase_order.js:2275 -#: templates/js/translated/return_order.js:779 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2472 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 #: templates/js/translated/sales_order.js:1092 #: templates/js/translated/sales_order.js:2023 msgid "Link" msgstr "链接" -#: common/models.py:2979 templates/js/translated/news.js:60 +#: common/models.py:3008 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2981 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3010 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2983 templates/js/translated/news.js:52 +#: common/models.py:3012 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Read" msgstr "" -#: common/models.py:2986 +#: common/models.py:3015 msgid "Was this news item read?" msgstr "" -#: common/models.py:3003 company/models.py:159 part/models.py:1035 +#: common/models.py:3032 company/models.py:159 part/models.py:1066 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3943,120 +4040,120 @@ msgstr "" msgid "Image" msgstr "图片" -#: common/models.py:3003 +#: common/models.py:3032 #, fuzzy #| msgid "Image" msgid "Image file" msgstr "图片" -#: common/models.py:3015 common/models.py:3219 +#: common/models.py:3044 common/models.py:3248 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model type for this image" msgstr "商品参数模板" -#: common/models.py:3019 +#: common/models.py:3048 #, fuzzy #| msgid "Part Parameter Templates" msgid "Target model ID for this image" msgstr "商品参数模板" -#: common/models.py:3041 +#: common/models.py:3070 #, fuzzy #| msgid "New Customer" msgid "Custom Unit" msgstr "新建客户" -#: common/models.py:3062 +#: common/models.py:3091 #, fuzzy #| msgid "Key string must be unique" msgid "Unit symbol must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:3077 +#: common/models.py:3106 #, fuzzy #| msgid "Must be a valid number" msgid "Unit name must be a valid identifier" msgstr "必须是有效数字" -#: common/models.py:3096 +#: common/models.py:3125 #, fuzzy #| msgid "Part name" msgid "Unit name" msgstr "商品名称" -#: common/models.py:3103 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3132 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3104 +#: common/models.py:3133 #, fuzzy #| msgid "Optional Items" msgid "Optional unit symbol" msgstr "可选项目" -#: common/models.py:3110 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3139 templates/InvenTree/settings/settings_staff_js.html:71 #, fuzzy #| msgid "Destination" msgid "Definition" msgstr "目的地" -#: common/models.py:3111 +#: common/models.py:3140 msgid "Unit definition" msgstr "" -#: common/models.py:3169 common/models.py:3226 stock/models.py:2473 +#: common/models.py:3198 common/models.py:3255 stock/models.py:2556 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "附件" -#: common/models.py:3181 +#: common/models.py:3210 msgid "Missing file" msgstr "缺少文件" -#: common/models.py:3182 +#: common/models.py:3211 msgid "Missing external link" msgstr "缺少外部链接" -#: common/models.py:3227 +#: common/models.py:3256 msgid "Select file to attach" msgstr "选择附件" -#: common/models.py:3242 templates/js/translated/attachment.js:120 +#: common/models.py:3271 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "注释" -#: common/models.py:3243 +#: common/models.py:3272 #, fuzzy #| msgid "Attachments" msgid "Attachment comment" msgstr "附件" -#: common/models.py:3259 +#: common/models.py:3288 #, fuzzy #| msgid "upload date" msgid "Upload date" msgstr "上传日期" -#: common/models.py:3260 +#: common/models.py:3289 #, fuzzy #| msgid "Select file to upload" msgid "Date the file was uploaded" msgstr "选择要上传的文件" -#: common/models.py:3264 +#: common/models.py:3293 #, fuzzy #| msgid "File Fields" msgid "File size" msgstr "文件字段" -#: common/models.py:3264 +#: common/models.py:3293 msgid "File size in bytes" msgstr "" -#: common/models.py:3302 common/serializers.py:557 +#: common/models.py:3331 common/serializers.py:557 msgid "Invalid model type specified for attachment" msgstr "" @@ -4078,7 +4175,7 @@ msgstr "" msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:330 common/notifications.py:337 order/api.py:454 +#: common/notifications.py:330 common/notifications.py:337 order/api.py:460 msgid "Items Received" msgstr "" @@ -4182,31 +4279,31 @@ msgstr "" msgid "User does not have permission to create or edit attachments for this model" msgstr "" -#: common/validators.py:33 +#: common/validators.py:35 #, fuzzy #| msgid "No data rows provided" msgid "No attachment model type provided" msgstr "没有提供数据行" -#: common/validators.py:39 +#: common/validators.py:41 #, fuzzy #| msgid "Invalid attachment directory" msgid "Invalid attachment model type" msgstr "非法的附件目录" -#: common/validators.py:80 +#: common/validators.py:82 msgid "Minimum places cannot be greater than maximum places" msgstr "" -#: common/validators.py:92 +#: common/validators.py:94 msgid "Maximum places cannot be less than minimum places" msgstr "" -#: common/validators.py:103 +#: common/validators.py:105 msgid "An empty domain is not allowed." msgstr "不允许空域。" -#: common/validators.py:105 +#: common/validators.py:107 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "无效的域名: {domain}" @@ -4323,9 +4420,9 @@ msgstr "联系人电子邮件" #: company/models.py:142 company/models.py:275 #: company/templates/company/company_base.html:145 order/models.py:343 -#: order/templates/order/order_base.html:203 -#: order/templates/order/return_order_base.html:174 -#: order/templates/order/sales_order_base.html:218 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 msgid "Contact" msgstr "联系人" @@ -4378,9 +4475,9 @@ msgid "Default currency used for this company" msgstr "该公司使用的默认货币" #: company/models.py:314 company/templates/company/company_base.html:124 -#: order/models.py:353 order/templates/order/order_base.html:210 -#: order/templates/order/return_order_base.html:181 -#: order/templates/order/sales_order_base.html:225 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 msgid "Address" msgstr "地址" @@ -4495,228 +4592,218 @@ msgstr "" msgid "Link to address information (external)" msgstr "描述 (可选)" -#: company/models.py:469 company/models.py:581 company/models.py:799 +#: company/models.py:470 company/models.py:587 company/models.py:811 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "制造商商品" -#: company/models.py:481 company/models.py:767 stock/models.py:765 +#: company/models.py:487 company/models.py:779 stock/models.py:787 #: stock/serializers.py:445 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:483 company/models.py:769 +#: company/models.py:489 company/models.py:781 msgid "Select part" msgstr "选择商品" -#: company/models.py:492 company/templates/company/company_base.html:82 +#: company/models.py:498 company/templates/company/company_base.html:82 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:545 +#: company/templates/company/supplier_part.html:145 part/serializers.py:553 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:507 #: templates/js/translated/company.js:1118 #: templates/js/translated/company.js:1296 #: templates/js/translated/company.js:1611 -#: templates/js/translated/table_filters.js:805 +#: templates/js/translated/table_filters.js:819 msgid "Manufacturer" msgstr "制造商" -#: company/models.py:493 +#: company/models.py:499 msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:499 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 order/serializers.py:519 -#: part/serializers.py:555 templates/js/translated/company.js:351 +#: company/models.py:505 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:552 +#: part/serializers.py:563 templates/js/translated/company.js:351 #: templates/js/translated/company.js:1117 #: templates/js/translated/company.js:1312 -#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1806 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:2124 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1804 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 msgid "MPN" msgstr "" -#: company/models.py:507 +#: company/models.py:513 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:516 +#: company/models.py:522 msgid "Manufacturer part description" msgstr "制造商商品描述" -#: company/models.py:569 +#: company/models.py:575 #, fuzzy #| msgid "Manufacturer Part Number" msgid "Manufacturer Part Parameter" msgstr "制造商商品编号" -#: company/models.py:588 +#: company/models.py:594 msgid "Parameter name" msgstr "参数名称" -#: company/models.py:594 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2465 templates/js/translated/company.js:1166 -#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1498 -#: templates/js/translated/stock.js:1603 +#: company/models.py:600 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2548 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1496 +#: templates/js/translated/stock.js:1607 msgid "Value" msgstr "数值" -#: company/models.py:595 +#: company/models.py:601 msgid "Parameter value" msgstr "参数值" -#: company/models.py:602 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1115 part/models.py:3733 +#: company/models.py:608 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1146 part/models.py:3764 #: part/templates/part/part_base.html:293 -#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1517 -#: templates/js/translated/part.js:1621 templates/js/translated/part.js:2376 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1619 templates/js/translated/part.js:2373 msgid "Units" msgstr "单位" -#: company/models.py:603 +#: company/models.py:609 msgid "Parameter units" msgstr "参数单位" -#: company/models.py:655 company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 order/api.py:434 -#: stock/models.py:776 stock/templates/stock/item_base.html:233 -#: templates/js/translated/build.js:1054 +#: company/models.py:662 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:487 stock/models.py:798 +#: stock/templates/stock/item_base.html:233 +#: templates/js/translated/build.js:1052 #: templates/js/translated/company.js:1600 #: templates/js/translated/purchase_order.js:752 -#: templates/js/translated/stock.js:2361 +#: templates/js/translated/stock.js:2365 msgid "Supplier Part" msgstr "供应商商品" -#: company/models.py:707 +#: company/models.py:719 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:714 +#: company/models.py:726 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Pack units must be greater than zero" msgstr "数量必须大于0" -#: company/models.py:728 +#: company/models.py:740 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:777 company/templates/company/company_base.html:87 -#: company/templates/company/supplier_part.html:129 order/models.py:486 -#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 -#: part/serializers.py:529 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:789 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:280 part/bom.py:318 +#: part/serializers.py:537 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:350 #: templates/js/translated/company.js:511 -#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1774 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1772 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1760 -#: templates/js/translated/table_filters.js:809 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:823 msgid "Supplier" msgstr "供应商" -#: company/models.py:778 +#: company/models.py:790 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:784 part/serializers.py:540 +#: company/models.py:796 part/serializers.py:548 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:790 +#: company/models.py:802 #, fuzzy #| msgid "Delete supplier part" msgid "Is this supplier part active?" msgstr "删除供应商商品" -#: company/models.py:800 +#: company/models.py:812 msgid "Select manufacturer part" msgstr "选择制造商商品" -#: company/models.py:807 +#: company/models.py:819 msgid "URL for external supplier part link" msgstr "外部供货商商品链接URL" -#: company/models.py:816 +#: company/models.py:828 msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:823 company/templates/company/supplier_part.html:187 -#: order/serializers.py:661 part/admin.py:412 part/models.py:4250 +#: company/models.py:835 company/templates/company/supplier_part.html:187 +#: order/serializers.py:694 part/admin.py:415 part/models.py:4281 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 #: report/templates/report/inventree_return_order_report.html:27 #: report/templates/report/inventree_sales_order_report.html:32 #: report/templates/report/inventree_stock_location_report.html:105 -#: stock/serializers.py:773 templates/js/translated/purchase_order.js:1185 +#: stock/serializers.py:776 templates/js/translated/purchase_order.js:1185 #: templates/js/translated/purchase_order.js:1344 msgid "Note" msgstr "备注" -#: company/models.py:832 part/models.py:2079 +#: company/models.py:844 part/models.py:2110 msgid "base cost" msgstr "" -#: company/models.py:833 part/models.py:2080 +#: company/models.py:845 part/models.py:2111 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:840 company/templates/company/supplier_part.html:160 -#: order/serializers.py:653 stock/admin.py:228 stock/models.py:796 -#: stock/serializers.py:1546 stock/templates/stock/item_base.html:240 -#: templates/js/translated/company.js:1646 -#: templates/js/translated/purchase_order.js:1169 -#: templates/js/translated/purchase_order.js:1332 -#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:1242 -#: templates/js/translated/stock.js:2505 -msgid "Packaging" -msgstr "打包" - -#: company/models.py:841 +#: company/models.py:853 msgid "Part packaging" msgstr "商品打包" -#: company/models.py:846 templates/js/translated/company.js:1651 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 +#: company/models.py:858 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 #: templates/js/translated/purchase_order.js:311 #: templates/js/translated/purchase_order.js:841 #: templates/js/translated/purchase_order.js:1103 -#: templates/js/translated/purchase_order.js:2155 -#: templates/js/translated/purchase_order.js:2172 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 msgid "Pack Quantity" msgstr "" -#: company/models.py:848 +#: company/models.py:860 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:867 part/models.py:2086 +#: company/models.py:879 part/models.py:2117 msgid "multiple" msgstr "" -#: company/models.py:868 +#: company/models.py:880 msgid "Order multiple" msgstr "" -#: company/models.py:880 +#: company/models.py:892 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:886 +#: company/models.py:898 msgid "Availability Updated" msgstr "" -#: company/models.py:887 +#: company/models.py:899 msgid "Date of last update of availability data" msgstr "" -#: company/models.py:1015 +#: company/models.py:1027 #, fuzzy #| msgid "Supplier Part Orders" msgid "Supplier Price Break" @@ -4732,7 +4819,7 @@ msgstr "该公司使用的默认货币" msgid "Company Name" msgstr "公司名称" -#: company/serializers.py:386 part/admin.py:126 part/serializers.py:888 +#: company/serializers.py:393 part/admin.py:126 part/serializers.py:896 #: part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1689 #: templates/js/translated/table_filters.js:355 @@ -4743,8 +4830,8 @@ msgstr "" #: part/templates/part/part_base.html:146 #: templates/js/translated/company.js:1287 #: templates/js/translated/company.js:1575 -#: templates/js/translated/model_renderers.js:312 -#: templates/js/translated/part.js:816 templates/js/translated/part.js:1224 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:814 templates/js/translated/part.js:1222 msgid "Inactive" msgstr "" @@ -4804,17 +4891,17 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:92 order/models.py:947 -#: order/models.py:2067 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:148 stock/models.py:818 -#: stock/models.py:819 stock/serializers.py:1296 +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2147 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:840 +#: stock/models.py:841 stock/serializers.py:1329 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:503 #: templates/js/translated/return_order.js:295 #: templates/js/translated/sales_order.js:820 -#: templates/js/translated/stock.js:3040 -#: templates/js/translated/table_filters.js:813 +#: templates/js/translated/stock.js:3043 +#: templates/js/translated/table_filters.js:827 msgid "Customer" msgstr "客户" @@ -4864,7 +4951,7 @@ msgstr "创建新的供应商商品" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:123 -#: part/templates/part/detail.html:356 +#: part/templates/part/detail.html:372 msgid "New Supplier Part" msgstr "新建供应商商品" @@ -4877,7 +4964,7 @@ msgstr "制造商商品" msgid "Create new manufacturer part" msgstr "新建制造商商品" -#: company/templates/company/detail.html:46 part/templates/part/detail.html:376 +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 msgid "New Manufacturer Part" msgstr "新建制造商商品" @@ -4891,7 +4978,7 @@ msgstr "供货商库存" #: order/templates/order/order_base.html:13 #: order/templates/order/purchase_orders.html:8 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/detail.html:106 part/templates/part/part_sidebar.html:35 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 @@ -4914,7 +5001,7 @@ msgstr "新建采购订单" #: order/templates/order/sales_order_base.html:13 #: order/templates/order/sales_orders.html:8 #: order/templates/order/sales_orders.html:15 -#: part/templates/part/detail.html:127 part/templates/part/part_sidebar.html:39 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 @@ -5000,7 +5087,7 @@ msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 #: company/templates/company/supplier_part.html:227 -#: part/templates/part/detail.html:109 part/templates/part/part_base.html:83 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 msgid "Order part" msgstr "订购商品" @@ -5015,8 +5102,8 @@ msgid "Delete manufacturer part" msgstr "删除生产商商品" #: company/templates/company/manufacturer_part.html:65 -#: company/templates/company/supplier_part.html:97 order/api.py:440 -#: order/serializers.py:527 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:560 msgid "Internal Part" msgstr "内部商品" @@ -5026,7 +5113,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:122 part/serializers.py:894 +#: part/admin.py:122 part/serializers.py:902 #: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 #: templates/navbar.html:48 msgid "Suppliers" @@ -5035,19 +5122,25 @@ msgstr "供应商" #: company/templates/company/manufacturer_part.html:156 #: company/templates/company/manufacturer_part_sidebar.html:5 #: part/templates/part/category_sidebar.html:20 -#: part/templates/part/detail.html:195 part/templates/part/part_sidebar.html:8 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 msgid "Parameters" msgstr "参数" #: company/templates/company/manufacturer_part.html:160 -#: part/templates/part/detail.html:200 +#: part/templates/part/detail.html:216 #: templates/InvenTree/settings/category.html:12 #: templates/InvenTree/settings/part_parameters.html:24 msgid "New Parameter" msgstr "新建参数" -#: company/templates/company/manufacturer_part.html:196 -#: templates/js/translated/part.js:1428 +#: company/templates/company/manufacturer_part.html:177 +#, fuzzy +#| msgid "Manufacturer Parts" +msgid "Manufacturer Part Notes" +msgstr "制造商商品" + +#: company/templates/company/manufacturer_part.html:225 +#: templates/js/translated/part.js:1426 msgid "Add Parameter" msgstr "添加参数" @@ -5081,7 +5174,7 @@ msgstr "" #: company/templates/company/supplier_part.html:55 #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:228 -#: part/templates/part/detail.html:110 +#: part/templates/part/detail.html:126 msgid "Order Part" msgstr "订购商品" @@ -5114,12 +5207,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 order/serializers.py:516 -#: part/bom.py:279 part/bom.py:311 part/serializers.py:539 -#: templates/js/translated/company.js:349 templates/js/translated/part.js:1792 +#: company/templates/company/supplier_part.html:139 order/serializers.py:549 +#: part/bom.py:287 part/bom.py:319 part/serializers.py:547 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1790 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1921 -#: templates/js/translated/purchase_order.js:2099 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 msgid "SKU" msgstr "" @@ -5128,13 +5221,13 @@ msgid "Supplier Part Stock" msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:209 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:207 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 msgid "Create new stock item" msgstr "" #: company/templates/company/supplier_part.html:210 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:208 -#: templates/js/translated/stock.js:538 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 msgid "New Stock Item" msgstr "" @@ -5152,29 +5245,35 @@ msgstr "价格信息" msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:276 +#: company/templates/company/supplier_part.html:270 +#, fuzzy +#| msgid "Supplier Parts" +msgid "Supplier Part Notes" +msgstr "供应商商品" + +#: company/templates/company/supplier_part.html:305 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:287 +#: company/templates/company/supplier_part.html:316 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:359 +#: company/templates/company/supplier_part.html:388 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 -#: part/serializers.py:892 part/stocktake.py:224 -#: part/templates/part/category.html:183 +#: part/serializers.py:900 part/stocktake.py:224 +#: part/templates/part/category.html:180 #: part/templates/part/category_sidebar.html:17 stock/admin.py:68 -#: stock/serializers.py:981 stock/serializers.py:1159 -#: stock/templates/stock/location.html:170 -#: stock/templates/stock/location.html:191 -#: stock/templates/stock/location.html:203 +#: stock/serializers.py:1014 stock/serializers.py:1192 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 #: stock/templates/stock/location_sidebar.html:7 -#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1066 -#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2847 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1064 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2850 #: users/models.py:206 msgid "Stock Items" msgstr "库存项" @@ -5214,101 +5313,107 @@ msgstr "已添加" msgid "Invalid export format" msgstr "无效的备损值" -#: importer/models.py:58 +#: importer/models.py:59 msgid "Timestamp" msgstr "" -#: importer/models.py:63 +#: importer/models.py:64 #, fuzzy #| msgid "Select file to upload" msgid "Data file to import" msgstr "选择要上传的文件" -#: importer/models.py:72 templates/js/translated/tables.js:558 +#: importer/models.py:73 templates/js/translated/tables.js:558 msgid "Columns" msgstr "" -#: importer/models.py:83 +#: importer/models.py:84 #, fuzzy #| msgid "Import Part" msgid "Import status" msgstr "导入商品" -#: importer/models.py:93 +#: importer/models.py:94 #, fuzzy #| msgid "Build Details" msgid "Field Defaults" msgstr "生产详情" -#: importer/models.py:100 +#: importer/models.py:101 #, fuzzy #| msgid "Print actions" msgid "Field Overrides" msgstr "打印操作" -#: importer/models.py:222 +#: importer/models.py:108 +#, fuzzy +#| msgid "Filters" +msgid "Field Filters" +msgstr "筛选器" + +#: importer/models.py:230 #, fuzzy #| msgid "Required build quantity has not been completed" msgid "Some required fields have not been mapped" msgstr "所需生产数量尚未完成" -#: importer/models.py:379 +#: importer/models.py:387 msgid "Column is already mapped to a database field" msgstr "" -#: importer/models.py:384 +#: importer/models.py:392 msgid "Field is already mapped to a data column" msgstr "" -#: importer/models.py:393 +#: importer/models.py:401 msgid "Column mapping must be linked to a valid import session" msgstr "" -#: importer/models.py:398 +#: importer/models.py:406 msgid "Column does not exist in the data file" msgstr "" -#: importer/models.py:405 +#: importer/models.py:413 msgid "Field does not exist in the target model" msgstr "" -#: importer/models.py:409 +#: importer/models.py:417 msgid "Selected field is read-only" msgstr "" -#: importer/models.py:414 importer/models.py:485 +#: importer/models.py:422 importer/models.py:493 #, fuzzy #| msgid "Report Settings" msgid "Import Session" msgstr "报表设置" -#: importer/models.py:418 +#: importer/models.py:426 #, fuzzy #| msgid "File Fields" msgid "Field" msgstr "文件字段" -#: importer/models.py:420 +#: importer/models.py:428 msgid "Column" msgstr "" -#: importer/models.py:489 +#: importer/models.py:497 msgid "Row Index" msgstr "" -#: importer/models.py:492 +#: importer/models.py:500 msgid "Original row data" msgstr "" -#: importer/models.py:495 part/models.py:3913 +#: importer/models.py:503 part/models.py:3944 msgid "Data" msgstr "" -#: importer/models.py:497 machine/models.py:110 +#: importer/models.py:505 machine/models.py:110 msgid "Errors" msgstr "" -#: importer/models.py:499 part/api.py:874 +#: importer/models.py:507 part/api.py:873 msgid "Valid" msgstr "" @@ -5328,41 +5433,47 @@ msgstr "" msgid "Invalid data file dimensions" msgstr "内嵌标签显示" -#: importer/serializers.py:90 +#: importer/serializers.py:91 #, fuzzy #| msgid "Build Details" msgid "Invalid field defaults" msgstr "生产详情" -#: importer/serializers.py:103 +#: importer/serializers.py:104 #, fuzzy #| msgid "Invalid quantity provided" msgid "Invalid field overrides" msgstr "提供的数量无效" -#: importer/serializers.py:164 +#: importer/serializers.py:117 +#, fuzzy +#| msgid "Build Details" +msgid "Invalid field filters" +msgstr "生产详情" + +#: importer/serializers.py:178 msgid "Rows" msgstr "" -#: importer/serializers.py:165 +#: importer/serializers.py:179 msgid "List of row IDs to accept" msgstr "" -#: importer/serializers.py:178 +#: importer/serializers.py:192 #, fuzzy #| msgid "No data rows provided" msgid "No rows provided" msgstr "没有提供数据行" -#: importer/serializers.py:182 +#: importer/serializers.py:196 msgid "Row does not belong to this session" msgstr "" -#: importer/serializers.py:185 +#: importer/serializers.py:199 msgid "Row contains invalid data" msgstr "" -#: importer/serializers.py:188 +#: importer/serializers.py:202 #, fuzzy #| msgid "This build output has already been completed" msgid "Row has already been completed" @@ -5426,7 +5537,7 @@ msgstr "要生产的项目数量" msgid "Connected" msgstr "连接错误" -#: machine/machine_types/label_printer.py:232 order/api.py:1388 +#: machine/machine_types/label_printer.py:232 order/api.py:1408 #: templates/js/translated/sales_order.js:1078 msgid "Unknown" msgstr "" @@ -5532,21 +5643,21 @@ msgstr "" #: order/admin.py:30 order/models.py:90 #: report/templates/report/inventree_purchase_order_report.html:31 #: report/templates/report/inventree_sales_order_report.html:31 -#: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2196 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 #: templates/js/translated/sales_order.js:1883 msgid "Total Price" msgstr "" #: order/api.py:149 order/serializers.py:94 -#: order/templates/order/order_base.html:118 -#: order/templates/order/return_order_base.html:113 -#: order/templates/order/sales_order_base.html:122 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 msgid "Order Status" msgstr "" #: order/api.py:153 templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:784 +#: templates/js/translated/table_filters.js:798 msgid "Has Pricing" msgstr "" @@ -5554,45 +5665,45 @@ msgstr "" msgid "No matching purchase order found" msgstr "" -#: order/api.py:417 order/api.py:755 order/models.py:1409 order/models.py:1523 -#: order/models.py:1574 order/models.py:1689 order/models.py:1848 -#: order/models.py:2267 order/models.py:2323 +#: order/api.py:423 order/api.py:761 order/models.py:1484 order/models.py:1598 +#: order/models.py:1649 order/models.py:1764 order/models.py:1923 +#: order/models.py:2383 order/models.py:2439 #: templates/js/translated/sales_order.js:1524 msgid "Order" msgstr "" -#: order/api.py:421 order/api.py:776 +#: order/api.py:427 order/api.py:782 #, fuzzy #| msgid "Order Code" msgid "Order Complete" msgstr "订单编码" -#: order/api.py:444 +#: order/api.py:450 #, fuzzy #| msgid "Pending" msgid "Order Pending" msgstr "待定" -#: order/api.py:1382 order/models.py:380 order/models.py:1410 -#: order/models.py:1524 order/templates/order/order_base.html:9 +#: order/api.py:1402 order/models.py:380 order/models.py:1485 +#: order/models.py:1599 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_purchase_order_report.html:14 #: stock/serializers.py:120 stock/templates/stock/item_base.html:176 #: templates/email/overdue_purchase_order.html:15 -#: templates/js/translated/part.js:1751 templates/js/translated/pricing.js:804 +#: templates/js/translated/part.js:1749 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:753 -#: templates/js/translated/purchase_order.js:1744 -#: templates/js/translated/stock.js:2341 templates/js/translated/stock.js:2988 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2345 templates/js/translated/stock.js:2991 msgid "Purchase Order" msgstr "" -#: order/api.py:1386 order/models.py:2016 order/models.py:2268 -#: order/models.py:2324 order/templates/order/return_order_base.html:9 +#: order/api.py:1406 order/models.py:2091 order/models.py:2384 +#: order/models.py:2440 order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report.html:13 #: templates/js/translated/return_order.js:280 -#: templates/js/translated/stock.js:3022 +#: templates/js/translated/stock.js:3025 #, fuzzy #| msgid "Returned" msgid "Return Order" @@ -5632,7 +5743,7 @@ msgstr "描述 (可选)" msgid "Select project code for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:303 order/models.py:1310 order/models.py:1742 +#: order/models.py:303 order/models.py:1385 order/models.py:1817 msgid "Link to external page" msgstr "" @@ -5660,393 +5771,399 @@ msgstr "此构建订单的优先级" msgid "Company address for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:464 order/models.py:936 +#: order/models.py:469 order/models.py:980 msgid "Order reference" msgstr "" -#: order/models.py:472 order/models.py:960 +#: order/models.py:478 msgid "Purchase order status" msgstr "" -#: order/models.py:487 +#: order/models.py:493 msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:498 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1773 +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 msgid "Supplier Reference" msgstr "" -#: order/models.py:499 +#: order/models.py:505 msgid "Supplier order reference code" msgstr "" -#: order/models.py:508 +#: order/models.py:514 msgid "received by" msgstr "" -#: order/models.py:514 order/models.py:2093 +#: order/models.py:520 order/models.py:2173 msgid "Issue Date" msgstr "" -#: order/models.py:515 order/models.py:2094 +#: order/models.py:521 order/models.py:2174 msgid "Date order was issued" msgstr "" -#: order/models.py:522 order/models.py:2101 +#: order/models.py:528 order/models.py:2181 msgid "Date order was completed" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:768 +#: order/models.py:807 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:948 +#: order/models.py:992 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:971 order/models.py:2086 +#: order/models.py:1004 +#, fuzzy +#| msgid "Sales Order Settings" +msgid "Sales order status" +msgstr "销售订单设置" + +#: order/models.py:1015 order/models.py:2166 msgid "Customer Reference " msgstr "" -#: order/models.py:972 order/models.py:2087 +#: order/models.py:1016 order/models.py:2167 msgid "Customer order reference code" msgstr "" -#: order/models.py:976 order/models.py:1696 +#: order/models.py:1020 order/models.py:1771 #: templates/js/translated/sales_order.js:879 #: templates/js/translated/sales_order.js:1060 msgid "Shipment Date" msgstr "" -#: order/models.py:985 +#: order/models.py:1029 msgid "shipped by" msgstr "" -#: order/models.py:1034 +#: order/models.py:1078 #, fuzzy #| msgid "Build output is already completed" msgid "Order is already complete" msgstr "生产产出已完成" -#: order/models.py:1037 +#: order/models.py:1081 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Order is already cancelled" msgstr "无法取消订单" -#: order/models.py:1041 +#: order/models.py:1085 #, fuzzy #| msgid "Build Order is ready to mark as completed" msgid "Only an open order can be marked as complete" msgstr "构建订单已准备好标记为已完成" -#: order/models.py:1045 +#: order/models.py:1089 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:1050 +#: order/models.py:1094 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1282 +#: order/models.py:1357 msgid "Item quantity" msgstr "" -#: order/models.py:1299 +#: order/models.py:1374 msgid "Line item reference" msgstr "" -#: order/models.py:1306 +#: order/models.py:1381 msgid "Line item notes" msgstr "" -#: order/models.py:1318 +#: order/models.py:1393 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1339 +#: order/models.py:1414 #, fuzzy #| msgid "Description (optional)" msgid "Line item description (optional)" msgstr "描述 (可选)" -#: order/models.py:1345 +#: order/models.py:1420 msgid "Context" msgstr "" -#: order/models.py:1346 +#: order/models.py:1421 msgid "Additional context for this line" msgstr "" -#: order/models.py:1356 +#: order/models.py:1431 msgid "Unit price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1445 #, fuzzy #| msgid "Delete parameters" msgid "Purchase Order Line Item" msgstr "删除参数" -#: order/models.py:1394 +#: order/models.py:1469 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1401 +#: order/models.py:1476 msgid "deleted" msgstr "" -#: order/models.py:1429 +#: order/models.py:1504 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1436 order/templates/order/order_base.html:196 -#: templates/js/translated/part.js:1875 templates/js/translated/part.js:1907 +#: order/models.py:1511 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1873 templates/js/translated/part.js:1905 #: templates/js/translated/purchase_order.js:1369 -#: templates/js/translated/purchase_order.js:2240 -#: templates/js/translated/return_order.js:763 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 #: templates/js/translated/table_filters.js:120 -#: templates/js/translated/table_filters.js:602 +#: templates/js/translated/table_filters.js:616 msgid "Received" msgstr "" -#: order/models.py:1437 +#: order/models.py:1512 msgid "Number of items received" msgstr "" -#: order/models.py:1445 stock/models.py:937 stock/serializers.py:607 +#: order/models.py:1520 stock/models.py:959 stock/serializers.py:610 #: stock/templates/stock/item_base.html:183 -#: templates/js/translated/stock.js:2392 +#: templates/js/translated/stock.js:2396 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1446 +#: order/models.py:1521 msgid "Unit purchase price" msgstr "" -#: order/models.py:1461 +#: order/models.py:1536 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1512 +#: order/models.py:1587 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase Order Extra Line" msgstr "采购订单设置" -#: order/models.py:1541 +#: order/models.py:1616 #, fuzzy #| msgid "Delete parameters" msgid "Sales Order Line Item" msgstr "删除参数" -#: order/models.py:1562 +#: order/models.py:1637 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1567 +#: order/models.py:1642 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1593 part/templates/part/part_pricing.html:107 +#: order/models.py:1668 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1594 +#: order/models.py:1669 msgid "Unit sale price" msgstr "" -#: order/models.py:1603 order/status_codes.py:43 +#: order/models.py:1678 order/status_codes.py:48 #: templates/js/translated/sales_order.js:1559 #: templates/js/translated/sales_order.js:1680 #: templates/js/translated/sales_order.js:1993 msgid "Shipped" msgstr "已发货" -#: order/models.py:1604 +#: order/models.py:1679 msgid "Shipped quantity" msgstr "" -#: order/models.py:1676 +#: order/models.py:1751 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Shipment" msgstr "销售订单设置" -#: order/models.py:1697 +#: order/models.py:1772 msgid "Date of shipment" msgstr "" -#: order/models.py:1703 templates/js/translated/sales_order.js:1072 +#: order/models.py:1778 templates/js/translated/sales_order.js:1072 msgid "Delivery Date" msgstr "" -#: order/models.py:1704 +#: order/models.py:1779 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1712 +#: order/models.py:1787 msgid "Checked By" msgstr "" -#: order/models.py:1713 +#: order/models.py:1788 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1720 order/models.py:1943 order/serializers.py:1420 -#: order/serializers.py:1530 templates/js/translated/model_renderers.js:454 +#: order/models.py:1795 order/models.py:2018 order/serializers.py:1454 +#: order/serializers.py:1564 templates/js/translated/model_renderers.js:455 msgid "Shipment" msgstr "" -#: order/models.py:1721 +#: order/models.py:1796 msgid "Shipment number" msgstr "" -#: order/models.py:1729 +#: order/models.py:1804 msgid "Tracking Number" msgstr "" -#: order/models.py:1730 +#: order/models.py:1805 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1737 +#: order/models.py:1812 msgid "Invoice Number" msgstr "" -#: order/models.py:1738 +#: order/models.py:1813 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1758 +#: order/models.py:1833 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1761 +#: order/models.py:1836 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1837 +#: order/models.py:1912 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Extra Line" msgstr "销售订单设置" -#: order/models.py:1866 +#: order/models.py:1941 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order Allocation" msgstr "销售订单设置" -#: order/models.py:1889 order/models.py:1891 +#: order/models.py:1964 order/models.py:1966 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1898 +#: order/models.py:1973 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1901 +#: order/models.py:1976 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1904 +#: order/models.py:1979 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1923 order/serializers.py:1297 +#: order/models.py:1998 order/serializers.py:1324 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1926 +#: order/models.py:2001 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1927 plugin/base/barcodes/api.py:481 +#: order/models.py:2002 plugin/base/barcodes/api.py:524 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1935 +#: order/models.py:2010 msgid "Line" msgstr "" -#: order/models.py:1944 +#: order/models.py:2019 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1957 order/models.py:2275 -#: templates/js/translated/return_order.js:721 +#: order/models.py:2032 order/models.py:2391 +#: templates/js/translated/return_order.js:720 msgid "Item" msgstr "" -#: order/models.py:1958 +#: order/models.py:2033 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1967 +#: order/models.py:2042 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:2056 +#: order/models.py:2136 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:2068 +#: order/models.py:2148 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:2080 +#: order/models.py:2160 msgid "Return order status" msgstr "" -#: order/models.py:2246 +#: order/models.py:2362 #, fuzzy #| msgid "Delete parameters" msgid "Return Order Line Item" msgstr "删除参数" -#: order/models.py:2260 +#: order/models.py:2376 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:2276 +#: order/models.py:2392 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:2282 +#: order/models.py:2398 msgid "Received Date" msgstr "" -#: order/models.py:2283 +#: order/models.py:2399 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2294 templates/js/translated/return_order.js:732 +#: order/models.py:2410 templates/js/translated/return_order.js:731 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2295 +#: order/models.py:2411 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2302 +#: order/models.py:2418 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/models.py:2312 +#: order/models.py:2428 #, fuzzy #| msgid "Build Order Settings" msgid "Return Order Extra Line" @@ -6058,228 +6175,228 @@ msgstr "生产订单设置" msgid "Completed Lines" msgstr "已完成项目" -#: order/serializers.py:306 +#: order/serializers.py:327 msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:321 order/serializers.py:1313 +#: order/serializers.py:342 order/serializers.py:1345 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:331 order/serializers.py:1323 +#: order/serializers.py:352 order/serializers.py:1355 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:469 +#: order/serializers.py:502 msgid "Order is not open" msgstr "" -#: order/serializers.py:490 +#: order/serializers.py:523 #, fuzzy #| msgid "Part Pricing" msgid "Auto Pricing" msgstr "商品价格" -#: order/serializers.py:492 +#: order/serializers.py:525 msgid "Automatically calculate purchase price based on supplier part data" msgstr "" -#: order/serializers.py:502 +#: order/serializers.py:535 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:508 +#: order/serializers.py:541 #, fuzzy #| msgid "Select Stock Items" msgid "Merge Items" msgstr "选择库存项" -#: order/serializers.py:510 +#: order/serializers.py:543 msgid "Merge items with the same part, destination and target date into one line item" msgstr "" -#: order/serializers.py:523 part/models.py:1001 +#: order/serializers.py:556 part/models.py:1032 msgid "Internal Part Number" msgstr "内部商品编号" -#: order/serializers.py:531 +#: order/serializers.py:564 #, fuzzy #| msgid "Internal Part Number" msgid "Internal Part Name" msgstr "内部商品编号" -#: order/serializers.py:547 +#: order/serializers.py:580 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:550 +#: order/serializers.py:583 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:558 +#: order/serializers.py:591 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:559 +#: order/serializers.py:592 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:602 order/serializers.py:1391 +#: order/serializers.py:635 order/serializers.py:1425 msgid "Line Item" msgstr "" -#: order/serializers.py:608 +#: order/serializers.py:641 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:618 order/serializers.py:742 order/serializers.py:1737 +#: order/serializers.py:651 order/serializers.py:775 order/serializers.py:1761 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:634 templates/js/translated/purchase_order.js:1130 -#: templates/js/translated/stock.js:1196 +#: order/serializers.py:667 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:642 templates/js/translated/purchase_order.js:1155 +#: order/serializers.py:675 templates/js/translated/purchase_order.js:1155 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:654 +#: order/serializers.py:687 msgid "Override packaging information for incoming stock items" msgstr "" -#: order/serializers.py:662 +#: order/serializers.py:695 #, fuzzy #| msgid "Destination stock item" msgid "Additional note for incoming stock items" msgstr "目标库存项" -#: order/serializers.py:669 templates/js/translated/barcode.js:52 +#: order/serializers.py:702 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:670 +#: order/serializers.py:703 #, fuzzy #| msgid "Scan Barcode" msgid "Scanned barcode" msgstr "扫描条形码" -#: order/serializers.py:686 +#: order/serializers.py:719 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:710 +#: order/serializers.py:743 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:758 order/serializers.py:1753 +#: order/serializers.py:791 order/serializers.py:1777 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:774 +#: order/serializers.py:807 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:785 +#: order/serializers.py:818 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:1139 +#: order/serializers.py:1166 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1200 +#: order/serializers.py:1227 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1261 order/serializers.py:1400 +#: order/serializers.py:1288 order/serializers.py:1434 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1280 +#: order/serializers.py:1307 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1410 +#: order/serializers.py:1444 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1432 order/serializers.py:1538 +#: order/serializers.py:1466 order/serializers.py:1572 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1435 order/serializers.py:1541 +#: order/serializers.py:1469 order/serializers.py:1575 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1482 +#: order/serializers.py:1516 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1489 +#: order/serializers.py:1523 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1707 +#: order/serializers.py:1731 msgid "Return order line item" msgstr "" -#: order/serializers.py:1713 +#: order/serializers.py:1737 #, fuzzy #| msgid "Build output does not match Build Order" msgid "Line item does not match return order" msgstr "生产产出与订单不匹配" -#: order/serializers.py:1716 +#: order/serializers.py:1740 #, fuzzy #| msgid "This build output has already been completed" msgid "Line item has already been received" msgstr "此生产产出已经完成" -#: order/serializers.py:1745 +#: order/serializers.py:1769 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1828 +#: order/serializers.py:1852 #, fuzzy #| msgid "Uses default currency" msgid "Line price currency" msgstr "使用默认货币" -#: order/status_codes.py:16 order/status_codes.py:46 stock/status_codes.py:16 +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 msgid "Lost" msgstr "丢失" -#: order/status_codes.py:17 order/status_codes.py:47 stock/status_codes.py:22 +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:22 msgid "Returned" msgstr "已退回" -#: order/status_codes.py:40 order/status_codes.py:67 +#: order/status_codes.py:45 order/status_codes.py:77 msgid "In Progress" msgstr "" -#: order/status_codes.py:85 +#: order/status_codes.py:101 #, fuzzy #| msgid "Returned" msgid "Return" msgstr "已退回" -#: order/status_codes.py:88 +#: order/status_codes.py:104 msgid "Repair" msgstr "" -#: order/status_codes.py:91 +#: order/status_codes.py:107 #, fuzzy #| msgid "Placed" msgid "Replace" msgstr "已添加" -#: order/status_codes.py:94 +#: order/status_codes.py:110 msgid "Refund" msgstr "" -#: order/status_codes.py:97 +#: order/status_codes.py:113 #, fuzzy #| msgid "Rejected" msgid "Reject" @@ -6326,93 +6443,101 @@ msgid "Edit order" msgstr "" #: order/templates/order/order_base.html:68 -#: order/templates/order/return_order_base.html:78 -#: order/templates/order/sales_order_base.html:77 -msgid "Cancel order" -msgstr "取消订单" - -#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/order_base.html:80 -#: order/templates/order/return_order_base.html:82 -#: order/templates/order/return_order_base.html:83 -#: order/templates/order/sales_order_base.html:83 -#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +#, fuzzy +#| msgid "Build Order" +msgid "Hold order" +msgstr "生产订单" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "取消订单" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 #, fuzzy #| msgid "Build Order" msgid "Issue Order" msgstr "生产订单" -#: order/templates/order/order_base.html:83 -#: order/templates/order/return_order_base.html:86 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:84 -#: order/templates/order/return_order_base.html:87 -#: order/templates/order/sales_order_base.html:97 +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:91 +#: order/templates/order/order_base.html:96 #, fuzzy #| msgid "Supplier part" msgid "Supplier part thumbnail" msgstr "供应商商品" -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:101 -#: order/templates/order/sales_order_base.html:110 +#: order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:111 -#: order/templates/order/return_order_base.html:106 -#: order/templates/order/sales_order_base.html:115 +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:141 +#: order/templates/order/order_base.html:146 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:154 -#: order/templates/order/sales_order_base.html:161 +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:160 -#: order/templates/order/sales_order_base.html:167 -#: order/templates/order/sales_order_base.html:177 +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:179 -#: order/templates/order/return_order_base.html:157 +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 #: report/templates/report/inventree_build_order_report.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:224 +#: order/templates/order/order_base.html:229 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:228 -#: order/templates/order/return_order_base.html:199 -#: order/templates/order/sales_order_base.html:243 +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 msgid "Total cost could not be calculated" msgstr "" -#: order/templates/order/order_base.html:314 +#: order/templates/order/order_base.html:335 #, fuzzy #| msgid "Purchase Orders" msgid "Purchase Order QR Code" msgstr "采购订单" -#: order/templates/order/order_base.html:326 +#: order/templates/order/order_base.html:347 #, fuzzy #| msgid "Create Purchase Order" msgid "Link Barcode to Purchase Order" @@ -6468,12 +6593,12 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:133 templates/js/translated/build.js:530 -#: templates/js/translated/build.js:1804 +#: templates/js/translated/build.js:1802 #: templates/js/translated/purchase_order.js:696 #: templates/js/translated/purchase_order.js:1288 #: templates/js/translated/return_order.js:505 #: templates/js/translated/sales_order.js:1145 -#: templates/js/translated/stock.js:715 templates/js/translated/stock.js:884 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" msgstr "移除行" @@ -6576,33 +6701,33 @@ msgstr "打印构建订单报告" msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:138 -#: order/templates/order/sales_order_base.html:155 +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 #: templates/js/translated/return_order.js:308 #: templates/js/translated/sales_order.js:833 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:195 -#: order/templates/order/sales_order_base.html:239 +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 -#: templates/js/translated/part.js:1078 -#: templates/js/translated/purchase_order.js:1823 +#: templates/js/translated/part.js:1076 +#: templates/js/translated/purchase_order.js:1822 #: templates/js/translated/return_order.js:380 #: templates/js/translated/sales_order.js:891 msgid "Total Cost" msgstr "" -#: order/templates/order/return_order_base.html:259 +#: order/templates/order/return_order_base.html:273 #, fuzzy #| msgid "Returned" msgid "Return Order QR Code" msgstr "已退回" -#: order/templates/order/return_order_base.html:271 +#: order/templates/order/return_order_base.html:285 #, fuzzy #| msgid "Create Purchase Order" msgid "Link Barcode to Return Order" @@ -6618,42 +6743,42 @@ msgstr "生产订单详情" msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:88 -#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 #, fuzzy #| msgid "Match Items" msgid "Ship Items" msgstr "匹配项" -#: order/templates/order/sales_order_base.html:92 -#: order/templates/order/sales_order_base.html:93 +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 #, fuzzy #| msgid "Shipped" msgid "Mark As Shipped" msgstr "已发货" -#: order/templates/order/sales_order_base.html:96 +#: order/templates/order/sales_order_base.html:99 #: templates/js/translated/sales_order.js:536 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:135 +#: order/templates/order/sales_order_base.html:138 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:173 +#: order/templates/order/sales_order_base.html:176 #: order/templates/order/sales_order_detail.html:99 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" -#: order/templates/order/sales_order_base.html:321 +#: order/templates/order/sales_order_base.html:339 #, fuzzy #| msgid "Sales Order" msgid "Sales Order QR Code" msgstr "销售订单" -#: order/templates/order/sales_order_base.html:333 +#: order/templates/order/sales_order_base.html:351 #, fuzzy #| msgid "New Sales Order" msgid "Link Barcode to Sales Order" @@ -6669,8 +6794,8 @@ msgid "Pending Shipments" msgstr "" #: order/templates/order/sales_order_detail.html:71 -#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1065 -#: templates/js/translated/filters.js:296 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1063 +#: templates/js/translated/filters.js:299 msgid "Actions" msgstr "" @@ -6700,21 +6825,21 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:48 part/models.py:1000 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:1031 part/templates/part/part_base.html:269 #: report/templates/report/inventree_stock_location_report.html:103 -#: templates/js/translated/part.js:1232 templates/js/translated/part.js:2347 -#: templates/js/translated/stock.js:2117 +#: templates/js/translated/part.js:1230 templates/js/translated/part.js:2344 +#: templates/js/translated/stock.js:2121 msgid "IPN" msgstr "" -#: part/admin.py:50 part/models.py:1009 part/templates/part/part_base.html:286 -#: report/models.py:162 templates/js/translated/part.js:1237 -#: templates/js/translated/part.js:2353 +#: part/admin.py:50 part/models.py:1040 part/templates/part/part_base.html:286 +#: report/models.py:162 templates/js/translated/part.js:1235 +#: templates/js/translated/part.js:2350 msgid "Revision" msgstr "" -#: part/admin.py:53 part/admin.py:319 part/models.py:982 -#: part/templates/part/category.html:94 part/templates/part/part_base.html:307 +#: part/admin.py:53 part/admin.py:319 part/models.py:1013 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:307 msgid "Keywords" msgstr "关键词" @@ -6728,7 +6853,7 @@ msgstr "商品名称" msgid "Category ID" msgstr "类别 ID" -#: part/admin.py:67 part/admin.py:304 part/serializers.py:870 +#: part/admin.py:67 part/admin.py:304 part/serializers.py:878 #: part/stocktake.py:223 msgid "Category Name" msgstr "" @@ -6741,11 +6866,11 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:81 part/models.py:968 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:999 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:84 part/models.py:1106 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:1137 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" @@ -6753,19 +6878,19 @@ msgstr "最低库存" msgid "Used In" msgstr "" -#: part/admin.py:150 part/serializers.py:887 +#: part/admin.py:150 part/serializers.py:895 #: part/templates/part/part_base.html:241 stock/admin.py:235 -#: templates/js/translated/part.js:716 templates/js/translated/part.js:2158 +#: templates/js/translated/part.js:714 templates/js/translated/part.js:2156 msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3164 part/models.py:3178 -#: templates/js/translated/part.js:975 +#: part/admin.py:155 part/models.py:3195 part/models.py:3209 +#: templates/js/translated/part.js:973 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3171 part/models.py:3185 -#: templates/js/translated/part.js:985 +#: part/admin.py:158 part/models.py:3202 part/models.py:3216 +#: templates/js/translated/part.js:983 msgid "Maximum Cost" msgstr "" @@ -6777,19 +6902,19 @@ msgstr "" msgid "Parent Name" msgstr "" -#: part/admin.py:320 part/templates/part/category.html:88 -#: part/templates/part/category.html:101 +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 msgid "Category Path" msgstr "类别路径" -#: part/admin.py:325 part/models.py:398 part/serializers.py:130 -#: part/serializers.py:282 part/serializers.py:406 -#: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 -#: part/templates/part/category.html:141 part/templates/part/category.html:161 +#: part/admin.py:325 part/models.py:424 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:414 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 -#: templates/js/translated/part.js:2823 templates/js/translated/search.js:130 +#: templates/js/translated/part.js:2819 templates/js/translated/search.js:130 #: templates/navbar.html:24 users/models.py:203 msgid "Parts" msgstr "商品" @@ -6806,142 +6931,148 @@ msgstr "" msgid "Parent IPN" msgstr "" -#: part/admin.py:415 part/serializers.py:1336 +#: part/admin.py:405 +#, fuzzy +#| msgid "Part description" +msgid "Part Revision" +msgstr "商品描述" + +#: part/admin.py:418 part/serializers.py:1344 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:420 part/serializers.py:1351 +#: part/admin.py:423 part/serializers.py:1359 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:105 +#: part/api.py:104 msgid "Starred" msgstr "" -#: part/api.py:107 +#: part/api.py:106 msgid "Filter by starred categories" msgstr "" -#: part/api.py:124 stock/api.py:312 +#: part/api.py:123 stock/api.py:312 msgid "Depth" msgstr "" -#: part/api.py:124 +#: part/api.py:123 msgid "Filter by category depth" msgstr "" -#: part/api.py:142 stock/api.py:330 +#: part/api.py:141 stock/api.py:330 #, fuzzy #| msgid "Levels" msgid "Top Level" msgstr "等级" -#: part/api.py:144 +#: part/api.py:143 #, fuzzy #| msgid "Create new part category" msgid "Filter by top-level categories" msgstr "新建商品类别" -#: part/api.py:157 stock/api.py:345 +#: part/api.py:156 stock/api.py:345 msgid "Cascade" msgstr "" -#: part/api.py:159 +#: part/api.py:158 msgid "Include sub-categories in filtered results" msgstr "" -#: part/api.py:180 templates/js/translated/part.js:309 +#: part/api.py:179 templates/js/translated/part.js:308 #, fuzzy #| msgid "parent" msgid "Parent" msgstr "上级项" -#: part/api.py:182 +#: part/api.py:181 #, fuzzy #| msgid "Create new part category" msgid "Filter by parent category" msgstr "新建商品类别" -#: part/api.py:215 +#: part/api.py:214 msgid "Exclude Tree" msgstr "" -#: part/api.py:217 +#: part/api.py:216 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude sub-categories under the specified category" msgstr "从该选定的仓储地点排除库存项" -#: part/api.py:442 +#: part/api.py:441 #, fuzzy #| msgid "Units" msgid "Has Results" msgstr "单位" -#: part/api.py:609 +#: part/api.py:608 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:627 +#: part/api.py:626 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:643 +#: part/api.py:642 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:727 +#: part/api.py:726 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:875 +#: part/api.py:874 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:881 +#: part/api.py:880 msgid "This option must be selected" msgstr "" -#: part/api.py:917 +#: part/api.py:916 #, fuzzy #| msgid "Part description" msgid "Is Revision" msgstr "商品描述" -#: part/api.py:927 +#: part/api.py:926 #, fuzzy #| msgid "Part description" msgid "Has Revisions" msgstr "商品描述" -#: part/api.py:1118 +#: part/api.py:1117 msgid "BOM Valid" msgstr "" -#: part/api.py:1518 part/models.py:992 part/models.py:3451 part/models.py:4008 -#: part/serializers.py:421 part/serializers.py:1192 +#: part/api.py:1521 part/models.py:1023 part/models.py:3482 part/models.py:4039 +#: part/serializers.py:429 part/serializers.py:1200 #: part/templates/part/part_base.html:260 stock/api.py:783 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 -#: templates/js/translated/part.js:2383 +#: templates/js/translated/part.js:2380 msgid "Category" msgstr "类别" -#: part/api.py:1808 +#: part/api.py:1811 msgid "Uses" msgstr "" -#: part/bom.py:170 part/models.py:105 part/models.py:1045 -#: part/templates/part/category.html:116 part/templates/part/part_base.html:376 -#: templates/js/translated/part.js:2397 +#: part/bom.py:178 part/models.py:107 part/models.py:1076 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:376 +#: templates/js/translated/part.js:2394 msgid "Default Location" msgstr "默认仓储地点" -#: part/bom.py:171 part/serializers.py:895 +#: part/bom.py:179 part/serializers.py:903 #: templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" @@ -6950,823 +7081,824 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:86 part/models.py:4009 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:4040 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:87 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:133 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 #: users/models.py:202 msgid "Part Categories" msgstr "商品类别" -#: part/models.py:106 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:111 stock/models.py:175 templates/js/translated/part.js:2829 -#: templates/js/translated/stock.js:2853 +#: part/models.py:113 stock/models.py:187 templates/js/translated/part.js:2825 +#: templates/js/translated/stock.js:2856 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:113 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:122 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:123 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:129 stock/models.py:87 stock/models.py:158 -#: templates/InvenTree/settings/settings_staff_js.html:456 +#: part/models.py:131 stock/models.py:90 stock/models.py:169 +#: templates/InvenTree/settings/settings_staff_js.html:445 msgid "Icon" msgstr "" -#: part/models.py:130 stock/models.py:159 +#: part/models.py:132 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:170 msgid "Icon (optional)" msgstr "" -#: part/models.py:152 +#: part/models.py:178 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:487 +#: part/models.py:518 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is locked" msgstr "打印操作" -#: part/models.py:490 +#: part/models.py:521 #, fuzzy #| msgid "Print actions" msgid "Cannot delete this part as it is still active" msgstr "打印操作" -#: part/models.py:495 +#: part/models.py:526 msgid "Cannot delete this part as it is used in an assembly" msgstr "" -#: part/models.py:533 +#: part/models.py:564 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:581 part/models.py:588 +#: part/models.py:612 part/models.py:619 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:600 +#: part/models.py:631 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:663 +#: part/models.py:694 #, fuzzy, python-brace-format #| msgid "IPN must match regex pattern {pat}" msgid "IPN must match regex pattern {pattern}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: part/models.py:671 +#: part/models.py:702 msgid "Part cannot be a revision of itself" msgstr "" -#: part/models.py:678 +#: part/models.py:709 msgid "Cannot make a revision of a part which is already a revision" msgstr "" -#: part/models.py:685 +#: part/models.py:716 #, fuzzy #| msgid "Destination location not specified" msgid "Revision code must be specified" msgstr "目标位置未指定" -#: part/models.py:692 +#: part/models.py:723 msgid "Revisions are only allowed for assembly parts" msgstr "" -#: part/models.py:699 +#: part/models.py:730 msgid "Cannot make a revision of a template part" msgstr "" -#: part/models.py:705 +#: part/models.py:736 #, fuzzy #| msgid "Build output must point to the same build" msgid "Parent part must point to the same template" msgstr "生产产出必须指向相同的生产" -#: part/models.py:784 +#: part/models.py:815 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:885 +#: part/models.py:916 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:894 +#: part/models.py:925 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Duplicate part revision already exists." msgstr "使用此文件名的附件已存在" -#: part/models.py:904 +#: part/models.py:935 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:919 +#: part/models.py:950 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:951 part/models.py:4064 +#: part/models.py:982 part/models.py:4095 msgid "Part name" msgstr "商品名称" -#: part/models.py:956 +#: part/models.py:987 msgid "Is Template" msgstr "" -#: part/models.py:957 +#: part/models.py:988 msgid "Is this part a template part?" msgstr "" -#: part/models.py:967 +#: part/models.py:998 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:975 +#: part/models.py:1006 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:983 +#: part/models.py:1014 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:993 +#: part/models.py:1024 msgid "Part category" msgstr "商品类别" -#: part/models.py:1008 +#: part/models.py:1039 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:1018 +#: part/models.py:1049 msgid "Is this part a revision of another part?" msgstr "" -#: part/models.py:1019 part/templates/part/part_base.html:277 +#: part/models.py:1050 part/templates/part/part_base.html:277 #, fuzzy #| msgid "Part description" msgid "Revision Of" msgstr "商品描述" -#: part/models.py:1043 +#: part/models.py:1074 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:1089 part/templates/part/part_base.html:385 +#: part/models.py:1120 part/templates/part/part_base.html:385 msgid "Default Supplier" msgstr "" -#: part/models.py:1090 +#: part/models.py:1121 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:1097 +#: part/models.py:1128 msgid "Default Expiry" msgstr "" -#: part/models.py:1098 +#: part/models.py:1129 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:1107 +#: part/models.py:1138 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:1116 +#: part/models.py:1147 msgid "Units of measure for this part" msgstr "" -#: part/models.py:1123 +#: part/models.py:1154 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:1129 +#: part/models.py:1160 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:1135 +#: part/models.py:1166 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:1141 +#: part/models.py:1172 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:1147 +#: part/models.py:1178 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:1151 +#: part/models.py:1182 msgid "Is this part active?" msgstr "" -#: part/models.py:1156 templates/js/translated/part.js:820 -#: templates/js/translated/table_filters.js:721 +#: part/models.py:1187 templates/js/translated/part.js:818 +#: templates/js/translated/table_filters.js:735 #, fuzzy #| msgid "Stock Item" msgid "Locked" msgstr "库存项" -#: part/models.py:1157 +#: part/models.py:1188 #, fuzzy #| msgid "Order cannot be cancelled" msgid "Locked parts cannot be edited" msgstr "无法取消订单" -#: part/models.py:1163 +#: part/models.py:1194 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:1169 +#: part/models.py:1200 msgid "BOM checksum" msgstr "" -#: part/models.py:1170 +#: part/models.py:1201 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1178 +#: part/models.py:1209 msgid "BOM checked by" msgstr "" -#: part/models.py:1183 +#: part/models.py:1214 msgid "BOM checked date" msgstr "" -#: part/models.py:1199 +#: part/models.py:1230 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1209 +#: part/models.py:1240 #, fuzzy #| msgid "User or group responsible for this order" msgid "Owner responsible for this part" msgstr "负责此订单的用户或群组" -#: part/models.py:1214 part/templates/part/part_base.html:348 +#: part/models.py:1245 part/templates/part/part_base.html:348 #: stock/templates/stock/item_base.html:451 -#: templates/js/translated/part.js:2490 +#: templates/js/translated/part.js:2487 msgid "Last Stocktake" msgstr "" -#: part/models.py:2087 +#: part/models.py:2118 msgid "Sell multiple" msgstr "" -#: part/models.py:3078 +#: part/models.py:3109 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3094 +#: part/models.py:3125 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3095 +#: part/models.py:3126 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3101 +#: part/models.py:3132 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3102 +#: part/models.py:3133 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3108 +#: part/models.py:3139 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3109 +#: part/models.py:3140 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3115 +#: part/models.py:3146 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3116 +#: part/models.py:3147 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3122 +#: part/models.py:3153 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3123 +#: part/models.py:3154 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3129 +#: part/models.py:3160 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3130 +#: part/models.py:3161 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3136 +#: part/models.py:3167 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3137 +#: part/models.py:3168 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3143 +#: part/models.py:3174 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3144 +#: part/models.py:3175 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3150 +#: part/models.py:3181 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3151 +#: part/models.py:3182 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3157 +#: part/models.py:3188 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3158 +#: part/models.py:3189 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3165 +#: part/models.py:3196 msgid "Override minimum cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3203 msgid "Override maximum cost" msgstr "" -#: part/models.py:3179 +#: part/models.py:3210 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3186 +#: part/models.py:3217 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3192 +#: part/models.py:3223 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3193 +#: part/models.py:3224 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3199 +#: part/models.py:3230 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3200 +#: part/models.py:3231 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3206 +#: part/models.py:3237 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3207 +#: part/models.py:3238 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3213 +#: part/models.py:3244 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3214 +#: part/models.py:3245 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3233 +#: part/models.py:3264 msgid "Part for stocktake" msgstr "" -#: part/models.py:3238 +#: part/models.py:3269 msgid "Item Count" msgstr "" -#: part/models.py:3239 +#: part/models.py:3270 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3247 +#: part/models.py:3278 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3251 part/models.py:3334 +#: part/models.py:3282 part/models.py:3365 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 -#: templates/InvenTree/settings/settings_staff_js.html:540 -#: templates/js/translated/part.js:1091 templates/js/translated/pricing.js:826 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1089 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1802 -#: templates/js/translated/stock.js:2902 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2905 msgid "Date" msgstr "" -#: part/models.py:3252 +#: part/models.py:3283 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3260 +#: part/models.py:3291 msgid "Additional notes" msgstr "" -#: part/models.py:3270 +#: part/models.py:3301 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3276 +#: part/models.py:3307 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3277 +#: part/models.py:3308 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3283 +#: part/models.py:3314 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3284 +#: part/models.py:3315 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3340 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3371 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3341 +#: part/models.py:3372 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3346 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3347 +#: part/models.py:3378 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3357 +#: part/models.py:3388 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3367 +#: part/models.py:3398 #, fuzzy #| msgid "Sale Price" msgid "Part Sale Price Break" msgstr "销售价格" -#: part/models.py:3479 +#: part/models.py:3510 #, fuzzy #| msgid "Parameter Template" msgid "Part Test Template" msgstr "参数模板" -#: part/models.py:3505 +#: part/models.py:3536 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3526 part/models.py:3695 +#: part/models.py:3557 part/models.py:3726 #, fuzzy #| msgid "Key string must be unique" msgid "Choices must be unique" msgstr "关键字必须是唯一的" -#: part/models.py:3537 +#: part/models.py:3568 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3548 +#: part/models.py:3579 #, fuzzy #| msgid "Attachment with this filename already exists" msgid "Test template with the same key already exists for part" msgstr "使用此文件名的附件已存在" -#: part/models.py:3565 templates/js/translated/part.js:2899 +#: part/models.py:3596 templates/js/translated/part.js:2895 msgid "Test Name" msgstr "" -#: part/models.py:3566 +#: part/models.py:3597 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3572 +#: part/models.py:3603 msgid "Test Key" msgstr "" -#: part/models.py:3573 +#: part/models.py:3604 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3580 +#: part/models.py:3611 msgid "Test Description" msgstr "" -#: part/models.py:3581 +#: part/models.py:3612 msgid "Enter description for this test" msgstr "" -#: part/models.py:3585 report/models.py:209 -#: templates/js/translated/part.js:2920 -#: templates/js/translated/table_filters.js:481 +#: part/models.py:3616 report/models.py:209 +#: templates/js/translated/part.js:2916 +#: templates/js/translated/table_filters.js:495 msgid "Enabled" msgstr "已启用" -#: part/models.py:3585 +#: part/models.py:3616 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3590 templates/js/translated/part.js:2928 -#: templates/js/translated/table_filters.js:477 +#: part/models.py:3621 templates/js/translated/part.js:2924 +#: templates/js/translated/table_filters.js:491 msgid "Required" msgstr "" -#: part/models.py:3591 +#: part/models.py:3622 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3596 templates/js/translated/part.js:2936 +#: part/models.py:3627 templates/js/translated/part.js:2932 msgid "Requires Value" msgstr "" -#: part/models.py:3597 +#: part/models.py:3628 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3602 templates/js/translated/part.js:2943 +#: part/models.py:3633 templates/js/translated/part.js:2939 msgid "Requires Attachment" msgstr "" -#: part/models.py:3604 +#: part/models.py:3635 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3610 part/models.py:3754 templates/js/translated/part.js:1642 +#: part/models.py:3641 part/models.py:3785 templates/js/translated/part.js:1640 msgid "Choices" msgstr "" -#: part/models.py:3611 +#: part/models.py:3642 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3643 +#: part/models.py:3674 #, fuzzy #| msgid "Part Parameter Templates" msgid "Part Parameter Template" msgstr "商品参数模板" -#: part/models.py:3670 +#: part/models.py:3701 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3675 +#: part/models.py:3706 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3712 +#: part/models.py:3743 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3727 +#: part/models.py:3758 msgid "Parameter Name" msgstr "" -#: part/models.py:3734 +#: part/models.py:3765 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3742 +#: part/models.py:3773 msgid "Parameter description" msgstr "" -#: part/models.py:3748 templates/js/translated/part.js:1633 -#: templates/js/translated/table_filters.js:830 +#: part/models.py:3779 templates/js/translated/part.js:1631 +#: templates/js/translated/table_filters.js:844 msgid "Checkbox" msgstr "" -#: part/models.py:3749 +#: part/models.py:3780 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3755 +#: part/models.py:3786 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3789 +#: part/models.py:3820 #, fuzzy #| msgid "Part Parameters" msgid "Part Parameter" msgstr "商品参数" -#: part/models.py:3815 +#: part/models.py:3846 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3851 +#: part/models.py:3882 #, fuzzy #| msgid "Invalid choice for parent build" msgid "Invalid choice for parameter value" msgstr "上级生产选项无效" -#: part/models.py:3900 +#: part/models.py:3931 msgid "Parent Part" msgstr "" -#: part/models.py:3908 part/models.py:4016 part/models.py:4017 +#: part/models.py:3939 part/models.py:4047 part/models.py:4048 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3914 +#: part/models.py:3945 msgid "Parameter Value" msgstr "" -#: part/models.py:3964 +#: part/models.py:3995 #, fuzzy #| msgid "Create Category Parameter Template" msgid "Part Category Parameter Template" msgstr "创建类别参数模板" -#: part/models.py:4023 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4054 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:4024 +#: part/models.py:4055 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4062 +#: part/models.py:4093 msgid "Part ID or part name" msgstr "" -#: part/models.py:4063 +#: part/models.py:4094 msgid "Unique part ID value" msgstr "" -#: part/models.py:4065 +#: part/models.py:4096 msgid "Part IPN value" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "Level" msgstr "" -#: part/models.py:4066 +#: part/models.py:4097 msgid "BOM level" msgstr "" -#: part/models.py:4177 +#: part/models.py:4208 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4184 +#: part/models.py:4215 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4194 +#: part/models.py:4225 msgid "Select parent part" msgstr "" -#: part/models.py:4204 +#: part/models.py:4235 msgid "Sub part" msgstr "" -#: part/models.py:4205 +#: part/models.py:4236 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4216 +#: part/models.py:4247 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4222 +#: part/models.py:4253 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4228 +#: part/models.py:4259 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4235 part/templates/part/upload_bom.html:55 +#: part/models.py:4266 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4236 +#: part/models.py:4267 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4243 +#: part/models.py:4274 msgid "BOM item reference" msgstr "" -#: part/models.py:4251 +#: part/models.py:4282 msgid "BOM item notes" msgstr "" -#: part/models.py:4257 +#: part/models.py:4288 msgid "Checksum" msgstr "" -#: part/models.py:4258 +#: part/models.py:4289 msgid "BOM line checksum" msgstr "" -#: part/models.py:4263 templates/js/translated/table_filters.js:174 +#: part/models.py:4294 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:4264 +#: part/models.py:4295 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:4269 part/templates/part/upload_bom.html:57 +#: part/models.py:4300 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:4270 +#: part/models.py:4301 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4276 +#: part/models.py:4307 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4361 stock/models.py:663 +#: part/models.py:4392 stock/models.py:685 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4371 part/models.py:4373 +#: part/models.py:4402 part/models.py:4404 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4511 +#: part/models.py:4542 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4532 +#: part/models.py:4563 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4545 +#: part/models.py:4576 msgid "Parent BOM item" msgstr "" -#: part/models.py:4553 +#: part/models.py:4584 msgid "Substitute part" msgstr "" -#: part/models.py:4569 +#: part/models.py:4600 msgid "Part 1" msgstr "" -#: part/models.py:4577 +#: part/models.py:4608 msgid "Part 2" msgstr "" -#: part/models.py:4578 +#: part/models.py:4609 msgid "Select Related Part" msgstr "" -#: part/models.py:4597 +#: part/models.py:4628 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4602 +#: part/models.py:4633 msgid "Duplicate relationship already exists" msgstr "" @@ -7776,360 +7908,390 @@ msgstr "" msgid "Parent Category" msgstr "商品类别" -#: part/serializers.py:125 templates/js/translated/part.js:310 +#: part/serializers.py:125 templates/js/translated/part.js:309 msgid "Parent part category" msgstr "" -#: part/serializers.py:132 part/serializers.py:154 -#: part/templates/part/category.html:122 part/templates/part/category.html:207 +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 #: part/templates/part/category_sidebar.html:7 msgid "Subcategories" msgstr "子类别" -#: part/serializers.py:189 +#: part/serializers.py:197 msgid "Results" msgstr "" -#: part/serializers.py:190 +#: part/serializers.py:198 msgid "Number of results recorded against this template" msgstr "" -#: part/serializers.py:217 part/serializers.py:235 stock/serializers.py:613 +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:616 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:283 +#: part/serializers.py:291 msgid "Number of parts using this template" msgstr "" -#: part/serializers.py:412 +#: part/serializers.py:420 #, fuzzy #| msgid "Rejected" msgid "No parts selected" msgstr "已拒绝" -#: part/serializers.py:422 +#: part/serializers.py:430 #, fuzzy #| msgid "Set category" msgid "Select category" msgstr "设置类别" -#: part/serializers.py:457 +#: part/serializers.py:465 msgid "Original Part" msgstr "" -#: part/serializers.py:458 +#: part/serializers.py:466 msgid "Select original part to duplicate" msgstr "" -#: part/serializers.py:463 +#: part/serializers.py:471 msgid "Copy Image" msgstr "" -#: part/serializers.py:464 +#: part/serializers.py:472 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:470 part/templates/part/detail.html:277 +#: part/serializers.py:478 part/templates/part/detail.html:293 msgid "Copy BOM" msgstr "" -#: part/serializers.py:471 +#: part/serializers.py:479 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:485 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:478 +#: part/serializers.py:486 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:484 +#: part/serializers.py:492 #, fuzzy #| msgid "Company Notes" msgid "Copy Notes" msgstr "公司备注" -#: part/serializers.py:485 +#: part/serializers.py:493 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:503 +#: part/serializers.py:511 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:505 +#: part/serializers.py:513 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:512 +#: part/serializers.py:520 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:513 +#: part/serializers.py:521 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:530 +#: part/serializers.py:538 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:546 +#: part/serializers.py:554 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:556 +#: part/serializers.py:564 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:563 +#: part/serializers.py:571 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:572 +#: part/serializers.py:580 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:583 +#: part/serializers.py:591 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:590 +#: part/serializers.py:598 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:893 +#: part/serializers.py:901 #, fuzzy #| msgid "Part description" msgid "Revisions" msgstr "商品描述" -#: part/serializers.py:898 +#: part/serializers.py:906 #, fuzzy #| msgid "Unallocate Stock" msgid "Unallocated Stock" msgstr "未分配库存" -#: part/serializers.py:901 +#: part/serializers.py:909 #, fuzzy #| msgid "Part Stock" msgid "Variant Stock" msgstr "商品库存" -#: part/serializers.py:931 part/templates/part/copy_part.html:9 -#: templates/js/translated/part.js:473 +#: part/serializers.py:939 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "复制部件" -#: part/serializers.py:932 +#: part/serializers.py:940 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:938 templates/js/translated/part.js:102 +#: part/serializers.py:946 templates/js/translated/part.js:103 msgid "Initial Stock" msgstr "" -#: part/serializers.py:939 +#: part/serializers.py:947 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:945 +#: part/serializers.py:953 msgid "Supplier Information" msgstr "" -#: part/serializers.py:946 +#: part/serializers.py:954 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:954 +#: part/serializers.py:962 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:955 +#: part/serializers.py:963 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:960 +#: part/serializers.py:968 #, fuzzy #| msgid "Existing barcode found" msgid "Existing Image" msgstr "发现现有条码" -#: part/serializers.py:961 +#: part/serializers.py:969 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:978 +#: part/serializers.py:986 #, fuzzy #| msgid "Part image not found" msgid "Image file does not exist" msgstr "未找到商品图像" -#: part/serializers.py:1184 +#: part/serializers.py:1192 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1194 +#: part/serializers.py:1202 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1204 +#: part/serializers.py:1212 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1210 +#: part/serializers.py:1218 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1211 +#: part/serializers.py:1219 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations" msgstr "从该选定的仓储地点排除库存项" -#: part/serializers.py:1216 +#: part/serializers.py:1224 msgid "Generate Report" msgstr "" -#: part/serializers.py:1217 +#: part/serializers.py:1225 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1222 +#: part/serializers.py:1230 msgid "Update Parts" msgstr "" -#: part/serializers.py:1223 +#: part/serializers.py:1231 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1231 +#: part/serializers.py:1239 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1337 +#: part/serializers.py:1345 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1344 +#: part/serializers.py:1352 #, fuzzy #| msgid "Uses default currency" msgid "Minimum price currency" msgstr "使用默认货币" -#: part/serializers.py:1352 +#: part/serializers.py:1360 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1359 +#: part/serializers.py:1367 #, fuzzy #| msgid "Uses default currency" msgid "Maximum price currency" msgstr "使用默认货币" -#: part/serializers.py:1388 +#: part/serializers.py:1396 msgid "Update" msgstr "" -#: part/serializers.py:1389 +#: part/serializers.py:1397 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1412 +#: part/serializers.py:1420 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1419 +#: part/serializers.py:1427 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1422 +#: part/serializers.py:1430 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1575 part/templates/part/part_base.html:235 +#: part/serializers.py:1574 +#, fuzzy +#| msgid "Select Label Template" +msgid "Select the parent assembly" +msgstr "选择标签模板" + +#: part/serializers.py:1583 +#, fuzzy +#| msgid "Component" +msgid "Component Name" +msgstr "组件" + +#: part/serializers.py:1586 +#, fuzzy +#| msgid "Component" +msgid "Component IPN" +msgstr "组件" + +#: part/serializers.py:1589 +#, fuzzy +#| msgid "Company description" +msgid "Component Description" +msgstr "公司简介" + +#: part/serializers.py:1595 +#, fuzzy +#| msgid "Select Label Template" +msgid "Select the component part" +msgstr "选择标签模板" + +#: part/serializers.py:1604 part/templates/part/part_base.html:235 #: templates/js/translated/bom.js:1219 msgid "Can Build" msgstr "" -#: part/serializers.py:1813 +#: part/serializers.py:1842 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1821 +#: part/serializers.py:1850 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1822 +#: part/serializers.py:1851 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1827 +#: part/serializers.py:1856 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1828 +#: part/serializers.py:1857 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1833 +#: part/serializers.py:1862 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1834 +#: part/serializers.py:1863 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1839 +#: part/serializers.py:1868 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1840 +#: part/serializers.py:1869 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1877 +#: part/serializers.py:1906 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1878 +#: part/serializers.py:1907 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1910 +#: part/serializers.py:1939 msgid "No part column specified" msgstr "" -#: part/serializers.py:1954 +#: part/serializers.py:1983 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1957 +#: part/serializers.py:1986 msgid "No matching part found" msgstr "" -#: part/serializers.py:1960 +#: part/serializers.py:1989 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1969 +#: part/serializers.py:1998 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1977 +#: part/serializers.py:2006 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:2000 +#: part/serializers.py:2029 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:225 templates/js/translated/part.js:1072 -#: templates/js/translated/part.js:1827 templates/js/translated/part.js:1883 -#: templates/js/translated/purchase_order.js:2155 +#: part/stocktake.py:225 templates/js/translated/part.js:1070 +#: templates/js/translated/part.js:1825 templates/js/translated/part.js:1881 +#: templates/js/translated/purchase_order.js:2154 msgid "Total Quantity" msgstr "" @@ -8179,65 +8341,65 @@ msgstr "" msgid "This BOM has not been validated." msgstr "一些库存项已被过度分配" -#: part/templates/part/category.html:35 +#: part/templates/part/category.html:32 msgid "Perform stocktake for this part category" msgstr "" -#: part/templates/part/category.html:41 part/templates/part/category.html:45 +#: part/templates/part/category.html:38 part/templates/part/category.html:42 msgid "You are subscribed to notifications for this category" msgstr "" -#: part/templates/part/category.html:49 +#: part/templates/part/category.html:46 msgid "Subscribe to notifications for this category" msgstr "" -#: part/templates/part/category.html:55 +#: part/templates/part/category.html:52 msgid "Category Actions" msgstr "" -#: part/templates/part/category.html:60 +#: part/templates/part/category.html:57 msgid "Edit category" msgstr "" -#: part/templates/part/category.html:61 +#: part/templates/part/category.html:58 msgid "Edit Category" msgstr "" -#: part/templates/part/category.html:65 +#: part/templates/part/category.html:62 msgid "Delete category" msgstr "" -#: part/templates/part/category.html:66 +#: part/templates/part/category.html:63 msgid "Delete Category" msgstr "" -#: part/templates/part/category.html:102 +#: part/templates/part/category.html:99 msgid "Top level part category" msgstr "" -#: part/templates/part/category.html:127 +#: part/templates/part/category.html:124 msgid "Parts (Including subcategories)" msgstr "商品 (包括子类别)" -#: part/templates/part/category.html:165 +#: part/templates/part/category.html:162 msgid "Create new part" msgstr "新建商品" -#: part/templates/part/category.html:166 templates/js/translated/bom.js:444 +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 msgid "New Part" msgstr "新商品" -#: part/templates/part/category.html:192 +#: part/templates/part/category.html:189 #: templates/InvenTree/settings/part_parameters.html:7 #: templates/InvenTree/settings/sidebar.html:49 msgid "Part Parameters" msgstr "商品参数" -#: part/templates/part/category.html:211 +#: part/templates/part/category.html:208 msgid "Create new part category" msgstr "新建商品类别" -#: part/templates/part/category.html:212 +#: part/templates/part/category.html:209 msgid "New Category" msgstr "" @@ -8285,7 +8447,7 @@ msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 #: stock/admin.py:255 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2297 users/models.py:204 +#: templates/js/translated/stock.js:2301 users/models.py:204 msgid "Stocktake" msgstr "" @@ -8297,101 +8459,107 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/detail.html:139 stock/templates/stock/item.html:49 +#: part/templates/part/detail.html:106 +#, fuzzy +#| msgid "Parameter Template" +msgid "Part Test Statistics" +msgstr "参数模板" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:156 +#: part/templates/part/detail.html:172 msgid "Part Notes" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part Variants" msgstr "" -#: part/templates/part/detail.html:175 +#: part/templates/part/detail.html:191 msgid "Create new variant" msgstr "" -#: part/templates/part/detail.html:176 +#: part/templates/part/detail.html:192 msgid "New Variant" msgstr "" -#: part/templates/part/detail.html:199 +#: part/templates/part/detail.html:215 msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:58 +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 msgid "Related Parts" msgstr "" -#: part/templates/part/detail.html:236 part/templates/part/detail.html:237 +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:255 part/templates/part/part_sidebar.html:17 +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 #: report/templates/report/inventree_bill_of_materials_report.html:100 msgid "Bill of Materials" msgstr "" -#: part/templates/part/detail.html:260 +#: part/templates/part/detail.html:276 msgid "Export actions" msgstr "" -#: part/templates/part/detail.html:264 templates/js/translated/bom.js:340 +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 msgid "Export BOM" msgstr "" -#: part/templates/part/detail.html:266 +#: part/templates/part/detail.html:282 msgid "Print BOM Report" msgstr "" -#: part/templates/part/detail.html:272 +#: part/templates/part/detail.html:288 msgid "BOM actions" msgstr "" -#: part/templates/part/detail.html:276 +#: part/templates/part/detail.html:292 msgid "Upload BOM" msgstr "" -#: part/templates/part/detail.html:278 +#: part/templates/part/detail.html:294 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:283 part/templates/part/detail.html:284 +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 #: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:297 +#: part/templates/part/detail.html:313 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:313 +#: part/templates/part/detail.html:329 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:338 stock/templates/stock/item.html:36 +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:352 +#: part/templates/part/detail.html:368 msgid "Part Suppliers" msgstr "商品供应商" -#: part/templates/part/detail.html:372 +#: part/templates/part/detail.html:388 msgid "Part Manufacturers" msgstr "商品制造商" -#: part/templates/part/detail.html:657 +#: part/templates/part/detail.html:672 msgid "Related Part" msgstr "" -#: part/templates/part/detail.html:665 +#: part/templates/part/detail.html:680 msgid "Add Related Part" msgstr "" -#: part/templates/part/detail.html:750 +#: part/templates/part/detail.html:765 msgid "Add Test Result Template" msgstr "" @@ -8426,13 +8594,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 -#: templates/js/translated/order.js:129 templates/js/translated/tables.js:189 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 -#: templates/js/translated/order.js:130 +#: templates/js/translated/order.js:155 msgid "Select file format" msgstr "" @@ -8450,7 +8618,7 @@ msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:62 -#: stock/templates/stock/location.html:74 templates/js/translated/label.js:136 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 msgid "Print Label" msgstr "打印标签" @@ -8460,7 +8628,7 @@ msgstr "" #: part/templates/part/part_base.html:63 #: stock/templates/stock/item_base.html:110 -#: stock/templates/stock/location.html:83 +#: stock/templates/stock/location.html:80 msgid "Stock actions" msgstr "" @@ -8472,7 +8640,7 @@ msgstr "清点商品库存" msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2296 msgid "Part actions" msgstr "" @@ -8542,7 +8710,7 @@ msgid "Minimum stock level" msgstr "" #: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1071 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:2463 +#: templates/js/translated/part.js:1268 templates/js/translated/part.js:2460 #: templates/js/translated/pricing.js:391 #: templates/js/translated/pricing.js:1054 msgid "Price Range" @@ -8631,13 +8799,13 @@ msgid "Variants" msgstr "" #: part/templates/part/part_sidebar.html:14 -#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:24 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 #: stock/templates/stock/stock_app_base.html:10 #: templates/InvenTree/search.html:153 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/part.js:1248 templates/js/translated/part.js:2151 -#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1062 -#: templates/js/translated/stock.js:2151 templates/navbar.html:31 +#: templates/js/translated/part.js:1246 templates/js/translated/part.js:2149 +#: templates/js/translated/part.js:2408 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2155 templates/navbar.html:31 msgid "Stock" msgstr "库存" @@ -8675,7 +8843,7 @@ msgstr "商品价格" #: part/templates/part/prices.html:18 #: templates/InvenTree/settings/settings_staff_js.html:80 #: templates/InvenTree/settings/user.html:24 -#: templates/js/translated/helpers.js:100 +#: templates/js/translated/helpers.js:103 #: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 #: templates/notes_buttons.html:4 msgid "Edit" @@ -8685,7 +8853,7 @@ msgstr "编辑" #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1703 #: templates/js/translated/company.js:1713 -#: templates/js/translated/stock.js:2327 +#: templates/js/translated/stock.js:2331 msgid "Last Updated" msgstr "" @@ -8761,9 +8929,9 @@ msgid "Update Pricing" msgstr "商品价格" #: part/templates/part/stock_count.html:7 -#: templates/js/translated/model_renderers.js:227 -#: templates/js/translated/part.js:706 templates/js/translated/part.js:2146 -#: templates/js/translated/part.js:2148 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:704 templates/js/translated/part.js:2144 +#: templates/js/translated/part.js:2146 msgid "No Stock" msgstr "" @@ -8841,7 +9009,7 @@ msgstr "未找到商品图像" msgid "Part Pricing" msgstr "商品价格" -#: plugin/api.py:170 +#: plugin/api.py:172 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -8853,122 +9021,132 @@ msgstr "未指定操作" msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:371 +#: plugin/base/barcodes/api.py:546 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:128 +#: plugin/base/barcodes/api.py:129 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:154 -#: templates/js/translated/purchase_order.js:1469 +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +#, fuzzy +#| msgid "Part image not found" +msgid "Model instance not found" +msgstr "未找到商品图像" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:293 +#: plugin/base/barcodes/api.py:336 #, fuzzy #| msgid "No matching action found" msgid "No matching part data found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:310 +#: plugin/base/barcodes/api.py:353 #, fuzzy #| msgid "No supplier parts found" msgid "No matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:314 +#: plugin/base/barcodes/api.py:357 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:338 +#: plugin/base/barcodes/api.py:381 #, fuzzy #| msgid "Delete supplier part" msgid "Matched supplier part" msgstr "删除供应商商品" -#: plugin/base/barcodes/api.py:387 +#: plugin/base/barcodes/api.py:430 #, fuzzy #| msgid "This build output has already been completed" msgid "Item has already been received" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/api.py:424 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No match found for barcode data" msgid "No match for supplier barcode" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:467 +#: plugin/base/barcodes/api.py:510 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching line items found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:470 +#: plugin/base/barcodes/api.py:513 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 +#: plugin/base/barcodes/api.py:551 plugin/base/barcodes/api.py:558 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:526 +#: plugin/base/barcodes/api.py:569 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Stock item does not match line item" msgstr "在BOM中找不到选定的库存项" -#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2783 +#: plugin/base/barcodes/api.py:593 templates/js/translated/build.js:2780 #: templates/js/translated/sales_order.js:1953 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:559 +#: plugin/base/barcodes/api.py:602 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "分配到生产的数量" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:606 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "没有用户信息" -#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:197 +#: plugin/base/barcodes/mixins.py:222 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:201 +#: plugin/base/barcodes/mixins.py:226 #, python-brace-format msgid "No matching purchase order for '{order}'" msgstr "" -#: plugin/base/barcodes/mixins.py:206 +#: plugin/base/barcodes/mixins.py:231 msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:440 +#: plugin/base/barcodes/mixins.py:465 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:471 +#: plugin/base/barcodes/mixins.py:496 msgid "Further information required to receive line item" msgstr "" -#: plugin/base/barcodes/mixins.py:479 +#: plugin/base/barcodes/mixins.py:504 #, fuzzy #| msgid "Received against purchase order" msgid "Received purchase order line item" @@ -8980,73 +9158,85 @@ msgstr "收到定购单" msgid "Scanned barcode data" msgstr "扫描条形码" -#: plugin/base/barcodes/serializers.py:81 +#: plugin/base/barcodes/serializers.py:30 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Model name to generate barcode for" +msgstr "负责此订单的用户或群组" + +#: plugin/base/barcodes/serializers.py:35 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Primary key of model object to generate barcode for" +msgstr "负责此订单的用户或群组" + +#: plugin/base/barcodes/serializers.py:105 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:87 +#: plugin/base/barcodes/serializers.py:111 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase order is not pending" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:105 +#: plugin/base/barcodes/serializers.py:129 #, fuzzy #| msgid "Purchase Order Settings" msgid "PurchaseOrder to receive items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:111 +#: plugin/base/barcodes/serializers.py:135 #, fuzzy #| msgid "Email backend not configured" msgid "Purchase order has not been placed" msgstr "未配置电子邮件后端" -#: plugin/base/barcodes/serializers.py:119 +#: plugin/base/barcodes/serializers.py:143 #, fuzzy #| msgid "Location not specified" msgid "Location to receive items into" msgstr "未指定仓储地点" -#: plugin/base/barcodes/serializers.py:125 +#: plugin/base/barcodes/serializers.py:149 #, fuzzy #| msgid "Create new stock location" msgid "Cannot select a structural location" msgstr "新建仓储地点" -#: plugin/base/barcodes/serializers.py:139 +#: plugin/base/barcodes/serializers.py:163 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:145 +#: plugin/base/barcodes/serializers.py:169 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order is not pending" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:153 +#: plugin/base/barcodes/serializers.py:177 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order line item to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:160 +#: plugin/base/barcodes/serializers.py:184 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order shipment to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:166 +#: plugin/base/barcodes/serializers.py:190 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/serializers.py:171 +#: plugin/base/barcodes/serializers.py:195 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" @@ -9074,15 +9264,15 @@ msgstr "重命名文件出错" msgid "No items provided to print" msgstr "没有为模板提供有效对象" -#: plugin/builtin/barcodes/inventree_barcode.py:25 +#: plugin/builtin/barcodes/inventree_barcode.py:27 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:28 +#: plugin/builtin/barcodes/inventree_barcode.py:30 #: plugin/builtin/integration/core_notifications.py:35 #: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:22 @@ -9093,6 +9283,34 @@ msgstr "" msgid "InvenTree contributors" msgstr "" +#: plugin/builtin/barcodes/inventree_barcode.py:34 +#, fuzzy +#| msgid "Enter barcode data" +msgid "Internal Barcode Format" +msgstr "输入条形码数据" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +#, fuzzy +#| msgid "User or group responsible for this order" +msgid "Select an internal barcode format" +msgstr "负责此订单的用户或群组" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + #: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" @@ -9372,7 +9590,7 @@ msgid "Is the plugin active" msgstr "" #: plugin/models.py:157 templates/js/translated/table_filters.js:370 -#: templates/js/translated/table_filters.js:504 +#: templates/js/translated/table_filters.js:518 msgid "Installed" msgstr "" @@ -9548,7 +9766,7 @@ msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" #: report/api.py:103 report/models.py:439 report/serializers.py:98 -#: report/serializers.py:148 templates/js/translated/purchase_order.js:1818 +#: report/serializers.py:148 templates/js/translated/purchase_order.js:1817 #: templates/js/translated/return_order.js:353 #: templates/js/translated/sales_order.js:887 #: templates/js/translated/sales_order.js:1047 @@ -9704,7 +9922,7 @@ msgstr "要生产的项目数量" msgid "Report generation is complete" msgstr "" -#: report/models.py:449 templates/js/translated/build.js:2352 +#: report/models.py:449 templates/js/translated/build.js:2349 msgid "Progress" msgstr "" @@ -9823,10 +10041,10 @@ msgstr "" #: report/templates/report/inventree_purchase_order_report.html:30 #: report/templates/report/inventree_sales_order_report.html:30 -#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2186 +#: templates/js/translated/purchase_order.js:2185 #: templates/js/translated/sales_order.js:1873 msgid "Unit Price" msgstr "单价" @@ -9841,8 +10059,10 @@ msgstr "额外的生产备注" #: report/templates/report/inventree_purchase_order_report.html:72 #: report/templates/report/inventree_sales_order_report.html:72 -#: templates/js/translated/purchase_order.js:2088 +#: templates/js/translated/purchase_order.js:2087 #: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 msgid "Total" msgstr "" @@ -9861,11 +10081,11 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report.html:102 -#: templates/js/translated/stock.js:1576 +#: templates/js/translated/stock.js:1580 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2459 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2542 msgid "Result" msgstr "" @@ -9888,31 +10108,31 @@ msgid "No result" msgstr "" #: report/templates/report/inventree_test_report.html:153 -#: stock/serializers.py:596 stock/templates/stock/stock_sidebar.html:16 +#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:16 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report.html:167 stock/admin.py:161 -#: templates/js/translated/stock.js:701 templates/js/translated/stock.js:872 -#: templates/js/translated/stock.js:3191 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3194 msgid "Serial" msgstr "" -#: report/templatetags/report.py:96 +#: report/templatetags/report.py:98 msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:152 report/templatetags/report.py:217 +#: report/templatetags/report.py:154 report/templatetags/report.py:233 #, fuzzy #| msgid "Part image not found" msgid "Image file not found" msgstr "未找到商品图像" -#: report/templatetags/report.py:242 +#: report/templatetags/report.py:258 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:283 +#: report/templatetags/report.py:299 msgid "company_image tag requires a Company instance" msgstr "" @@ -9920,8 +10140,8 @@ msgstr "" msgid "Location ID" msgstr "" -#: stock/admin.py:63 stock/templates/stock/location.html:131 -#: stock/templates/stock/location.html:137 +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 msgid "Location Path" msgstr "" @@ -9957,7 +10177,7 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:205 stock/models.py:803 +#: stock/admin.py:205 stock/models.py:825 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" @@ -9984,9 +10204,9 @@ msgstr "" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:260 stock/models.py:897 +#: stock/admin.py:260 stock/models.py:919 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2311 users/models.py:124 +#: templates/js/translated/stock.js:2315 users/models.py:124 msgid "Expiry Date" msgstr "" @@ -10006,7 +10226,7 @@ msgstr "删除仓储地" msgid "Include sub-locations in filtered results" msgstr "" -#: stock/api.py:369 stock/serializers.py:1153 +#: stock/api.py:369 stock/serializers.py:1186 #, fuzzy #| msgid "Print actions" msgid "Parent Location" @@ -10036,7 +10256,7 @@ msgstr "" msgid "Expiry date after" msgstr "" -#: stock/api.py:842 stock/serializers.py:601 +#: stock/api.py:842 stock/serializers.py:604 #: stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" @@ -10062,344 +10282,344 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:61 +#: stock/models.py:64 #, fuzzy #| msgid "Stock Location" msgid "Stock Location type" msgstr "仓储地点" -#: stock/models.py:62 +#: stock/models.py:65 #, fuzzy #| msgid "Stock Locations" msgid "Stock Location types" msgstr "仓储地点" -#: stock/models.py:88 +#: stock/models.py:91 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:125 stock/models.py:785 +#: stock/models.py:131 stock/models.py:807 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:126 stock/templates/stock/location.html:186 +#: stock/models.py:132 stock/templates/stock/location.html:183 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 #: users/models.py:205 msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:168 stock/models.py:946 +#: stock/models.py:180 stock/models.py:968 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:169 stock/models.py:947 +#: stock/models.py:181 stock/models.py:969 msgid "Select Owner" msgstr "" -#: stock/models.py:177 +#: stock/models.py:189 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:184 templates/js/translated/stock.js:2862 +#: stock/models.py:196 templates/js/translated/stock.js:2865 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:185 +#: stock/models.py:197 msgid "This is an external stock location" msgstr "" -#: stock/models.py:191 templates/js/translated/stock.js:2871 +#: stock/models.py:203 templates/js/translated/stock.js:2874 #: templates/js/translated/table_filters.js:246 #, fuzzy #| msgid "Location" msgid "Location type" msgstr "地点" -#: stock/models.py:195 +#: stock/models.py:207 #, fuzzy #| msgid "Stock item created" msgid "Stock location type of this location" msgstr "库存项已创建" -#: stock/models.py:262 +#: stock/models.py:279 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:642 +#: stock/models.py:664 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:669 stock/serializers.py:480 +#: stock/models.py:691 stock/serializers.py:480 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:686 +#: stock/models.py:708 #, fuzzy, python-brace-format #| msgid "Part type ('{pf}') must be {pe}" msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:696 stock/models.py:709 +#: stock/models.py:718 stock/models.py:731 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:699 +#: stock/models.py:721 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:721 +#: stock/models.py:743 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:726 +#: stock/models.py:748 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:739 +#: stock/models.py:761 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:755 +#: stock/models.py:777 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:789 msgid "Base part" msgstr "" -#: stock/models.py:777 +#: stock/models.py:799 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:789 +#: stock/models.py:811 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:797 stock/serializers.py:1547 +#: stock/models.py:819 stock/serializers.py:1580 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:808 +#: stock/models.py:830 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:827 +#: stock/models.py:849 msgid "Serial number for this item" msgstr "" -#: stock/models.py:841 stock/serializers.py:1530 +#: stock/models.py:863 stock/serializers.py:1563 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:846 +#: stock/models.py:868 msgid "Stock Quantity" msgstr "" -#: stock/models.py:856 +#: stock/models.py:878 msgid "Source Build" msgstr "" -#: stock/models.py:859 +#: stock/models.py:881 msgid "Build for this stock item" msgstr "" -#: stock/models.py:866 stock/templates/stock/item_base.html:363 +#: stock/models.py:888 stock/templates/stock/item_base.html:363 #, fuzzy #| msgid "Issued By" msgid "Consumed By" msgstr "发布者" -#: stock/models.py:869 +#: stock/models.py:891 #, fuzzy #| msgid "BuildOrder to which this build is allocated" msgid "Build order which consumed this stock item" msgstr "此次生产匹配的订单" -#: stock/models.py:878 +#: stock/models.py:900 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:882 +#: stock/models.py:904 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:888 +#: stock/models.py:910 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:899 +#: stock/models.py:921 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:917 +#: stock/models.py:939 msgid "Delete on deplete" msgstr "" -#: stock/models.py:918 +#: stock/models.py:940 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:938 +#: stock/models.py:960 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:969 +#: stock/models.py:991 msgid "Converted to part" msgstr "" -#: stock/models.py:1489 +#: stock/models.py:1511 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1495 +#: stock/models.py:1517 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1503 +#: stock/models.py:1525 #, fuzzy, python-brace-format #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/models.py:1509 +#: stock/models.py:1531 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1514 +#: stock/models.py:1536 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1522 stock/serializers.py:723 +#: stock/models.py:1544 stock/serializers.py:726 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1619 +#: stock/models.py:1641 #, fuzzy #| msgid "Part image not found" msgid "Test template does not exist" msgstr "未找到商品图像" -#: stock/models.py:1637 +#: stock/models.py:1659 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1641 +#: stock/models.py:1663 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1644 +#: stock/models.py:1666 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1647 +#: stock/models.py:1669 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1650 +#: stock/models.py:1672 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1653 +#: stock/models.py:1675 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1660 stock/serializers.py:1436 +#: stock/models.py:1682 stock/serializers.py:1469 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1664 +#: stock/models.py:1686 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1672 +#: stock/models.py:1694 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1677 +#: stock/models.py:1699 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1938 +#: stock/models.py:1960 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2341 #, fuzzy #| msgid "Stock Item" msgid "Stock Item Tracking" msgstr "库存项" -#: stock/models.py:2352 +#: stock/models.py:2374 msgid "Entry notes" msgstr "" -#: stock/models.py:2392 +#: stock/models.py:2414 #, fuzzy #| msgid "Stock Items" msgid "Stock Item Test Result" msgstr "库存项" -#: stock/models.py:2425 +#: stock/models.py:2447 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2430 +#: stock/models.py:2452 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2435 +#: stock/models.py:2457 #, fuzzy #| msgid "Invalid value for overage" msgid "Invalid value for this test" msgstr "无效的备损值" -#: stock/models.py:2459 +#: stock/models.py:2542 msgid "Test result" msgstr "" -#: stock/models.py:2466 +#: stock/models.py:2549 msgid "Test output value" msgstr "" -#: stock/models.py:2474 +#: stock/models.py:2557 msgid "Test result attachment" msgstr "" -#: stock/models.py:2478 +#: stock/models.py:2561 msgid "Test notes" msgstr "" -#: stock/models.py:2486 templates/js/translated/stock.js:1629 +#: stock/models.py:2569 templates/js/translated/stock.js:1633 #, fuzzy #| msgid "Destination" msgid "Test station" msgstr "目的地" -#: stock/models.py:2487 +#: stock/models.py:2570 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2493 +#: stock/models.py:2576 msgid "Started" msgstr "" -#: stock/models.py:2494 +#: stock/models.py:2577 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test start" msgstr "最后一次更新时间" -#: stock/models.py:2500 +#: stock/models.py:2583 #, fuzzy #| msgid "Danish" msgid "Finished" msgstr "丹麦语" -#: stock/models.py:2501 +#: stock/models.py:2584 #, fuzzy #| msgid "Timestamp of last update" msgid "The timestamp of the test finish" @@ -10497,213 +10717,219 @@ msgstr "源库存项" msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:593 stock/templates/stock/item_base.html:437 +#: stock/serializers.py:596 stock/templates/stock/item_base.html:437 #: templates/js/translated/table_filters.js:435 users/models.py:174 msgid "Expired" msgstr "" -#: stock/serializers.py:599 stock/templates/stock/stock_sidebar.html:20 +#: stock/serializers.py:602 stock/templates/stock/stock_sidebar.html:20 msgid "Child Items" msgstr "" -#: stock/serializers.py:603 +#: stock/serializers.py:606 #, fuzzy #| msgid "Stock Item" msgid "Tracking Items" msgstr "库存项" -#: stock/serializers.py:609 +#: stock/serializers.py:612 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:628 +#: stock/serializers.py:631 #, fuzzy #| msgid "Part Pricing" msgid "Minimum Pricing" msgstr "商品价格" -#: stock/serializers.py:634 +#: stock/serializers.py:637 #, fuzzy #| msgid "Part Pricing" msgid "Maximum Pricing" msgstr "商品价格" -#: stock/serializers.py:658 +#: stock/serializers.py:661 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:671 +#: stock/serializers.py:674 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:678 +#: stock/serializers.py:681 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:689 stock/serializers.py:1393 stock/serializers.py:1649 +#: stock/serializers.py:692 stock/serializers.py:1426 stock/serializers.py:1682 msgid "Destination stock location" msgstr "目标库存位置" -#: stock/serializers.py:696 +#: stock/serializers.py:699 msgid "Optional note field" msgstr "" -#: stock/serializers.py:706 +#: stock/serializers.py:709 msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:761 +#: stock/serializers.py:764 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:768 +#: stock/serializers.py:771 msgid "Quantity to Install" msgstr "" -#: stock/serializers.py:769 +#: stock/serializers.py:772 #, fuzzy #| msgid "Enter quantity for build output" msgid "Enter the quantity of items to install" msgstr "输入生产产出数量" -#: stock/serializers.py:774 stock/serializers.py:854 stock/serializers.py:950 -#: stock/serializers.py:1000 +#: stock/serializers.py:777 stock/serializers.py:857 stock/serializers.py:983 +#: stock/serializers.py:1033 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:782 +#: stock/serializers.py:785 #, fuzzy #| msgid "Quantity must be a positive number" msgid "Quantity to install must be at least 1" msgstr "数量必须大于0" -#: stock/serializers.py:790 +#: stock/serializers.py:793 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:801 +#: stock/serializers.py:804 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:814 +#: stock/serializers.py:817 #, fuzzy #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity to install must not exceed available quantity" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/serializers.py:849 +#: stock/serializers.py:852 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:884 +#: stock/serializers.py:903 +#, fuzzy +#| msgid "Unsupported file type" +msgid "Unsupported statistic type: " +msgstr "不支持的文件类型" + +#: stock/serializers.py:917 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:897 +#: stock/serializers.py:930 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:914 +#: stock/serializers.py:947 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:978 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:982 +#: stock/serializers.py:1015 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Select stock items to change status" msgstr "在BOM中找不到选定的库存项" -#: stock/serializers.py:988 +#: stock/serializers.py:1021 #, fuzzy #| msgid "Stock item created" msgid "No stock items selected" msgstr "库存项已创建" -#: stock/serializers.py:1084 stock/serializers.py:1161 -#: stock/templates/stock/location.html:165 -#: stock/templates/stock/location.html:222 +#: stock/serializers.py:1117 stock/serializers.py:1194 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/serializers.py:1154 templates/js/translated/stock.js:153 +#: stock/serializers.py:1187 templates/js/translated/stock.js:160 msgid "Parent stock location" msgstr "" -#: stock/serializers.py:1265 +#: stock/serializers.py:1298 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1302 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1273 +#: stock/serializers.py:1306 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1297 +#: stock/serializers.py:1330 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1303 +#: stock/serializers.py:1336 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1311 +#: stock/serializers.py:1344 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1321 stock/serializers.py:1575 +#: stock/serializers.py:1354 stock/serializers.py:1608 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1400 +#: stock/serializers.py:1433 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1405 +#: stock/serializers.py:1438 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1406 +#: stock/serializers.py:1439 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1411 +#: stock/serializers.py:1444 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1412 +#: stock/serializers.py:1445 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1422 +#: stock/serializers.py:1455 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1489 +#: stock/serializers.py:1522 #, fuzzy #| msgid "Change" msgid "No Change" msgstr "更改" -#: stock/serializers.py:1518 +#: stock/serializers.py:1551 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1537 +#: stock/serializers.py:1570 #, fuzzy #| msgid "Stock item created" msgid "Stock item status code" msgstr "库存项已创建" -#: stock/serializers.py:1565 +#: stock/serializers.py:1598 msgid "Stock transaction notes" msgstr "" @@ -10735,7 +10961,7 @@ msgstr "隔离" msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: stock/status_codes.py:42 templates/js/translated/stock.js:545 +#: stock/status_codes.py:42 templates/js/translated/stock.js:550 msgid "Stock item created" msgstr "库存项已创建" @@ -10793,7 +11019,7 @@ msgstr "从父项拆分" msgid "Split child item" msgstr "拆分子项" -#: stock/status_codes.py:69 templates/js/translated/stock.js:1939 +#: stock/status_codes.py:69 templates/js/translated/stock.js:1943 msgid "Merged stock items" msgstr "合并的库存项目" @@ -10815,7 +11041,7 @@ msgstr "生产订单输出已完成" msgid "Build order output rejected" msgstr "已创建生产订单输出" -#: stock/status_codes.py:78 templates/js/translated/stock.js:1845 +#: stock/status_codes.py:78 templates/js/translated/stock.js:1849 msgid "Consumed by build order" msgstr "被生产订单消耗" @@ -10882,7 +11108,7 @@ msgstr "" msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3352 +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3354 msgid "Install Stock Item" msgstr "" @@ -10890,7 +11116,7 @@ msgstr "" msgid "Delete all test results for this stock item" msgstr "" -#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1782 +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 msgid "Add Test Result" msgstr "" @@ -10903,8 +11129,8 @@ msgid "Scan to Location" msgstr "" #: stock/templates/stock/item_base.html:59 -#: stock/templates/stock/location.html:70 -#: templates/js/translated/filters.js:431 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 msgid "Printing actions" msgstr "" @@ -10913,17 +11139,17 @@ msgid "Stock adjustment actions" msgstr "" #: stock/templates/stock/item_base.html:79 -#: stock/templates/stock/location.html:90 templates/js/translated/stock.js:1905 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 msgid "Count stock" msgstr "" #: stock/templates/stock/item_base.html:81 -#: templates/js/translated/stock.js:1887 +#: templates/js/translated/stock.js:1891 msgid "Add stock" msgstr "" #: stock/templates/stock/item_base.html:82 -#: templates/js/translated/stock.js:1896 +#: templates/js/translated/stock.js:1900 msgid "Remove stock" msgstr "" @@ -10932,12 +11158,12 @@ msgid "Serialize stock" msgstr "" #: stock/templates/stock/item_base.html:88 -#: stock/templates/stock/location.html:96 templates/js/translated/stock.js:1914 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 msgid "Transfer stock" msgstr "" #: stock/templates/stock/item_base.html:91 -#: templates/js/translated/stock.js:1968 +#: templates/js/translated/stock.js:1972 msgid "Assign to customer" msgstr "" @@ -10978,7 +11204,7 @@ msgid "Delete stock item" msgstr "" #: stock/templates/stock/item_base.html:169 templates/InvenTree/search.html:139 -#: templates/js/translated/build.js:2298 templates/navbar.html:38 +#: templates/js/translated/build.js:2295 templates/navbar.html:38 msgid "Build" msgstr "生产" @@ -10991,7 +11217,7 @@ msgid "You are not in the list of owners of this item. This stock item cannot be msgstr "" #: stock/templates/stock/item_base.html:252 -#: stock/templates/stock/location.html:149 +#: stock/templates/stock/location.html:146 msgid "Read only" msgstr "" @@ -11038,7 +11264,7 @@ msgid "Navigate to next serial number" msgstr "" #: stock/templates/stock/item_base.html:398 -#: templates/js/translated/build.js:2555 +#: templates/js/translated/build.js:2552 msgid "No location set" msgstr "未设置仓储地点" @@ -11065,7 +11291,7 @@ msgid "No stocktake performed" msgstr "" #: stock/templates/stock/item_base.html:504 -#: templates/js/translated/stock.js:2033 +#: templates/js/translated/stock.js:2037 #, fuzzy #| msgid "Stock Item" msgid "stock item" @@ -11099,7 +11325,7 @@ msgstr "" msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:657 +#: stock/templates/stock/item_base.html:656 msgid "Return to Stock" msgstr "" @@ -11111,90 +11337,90 @@ msgstr "" msgid "Select quantity to serialize, and unique serial numbers." msgstr "" -#: stock/templates/stock/location.html:38 +#: stock/templates/stock/location.html:35 msgid "Perform stocktake for this stock location" msgstr "" -#: stock/templates/stock/location.html:45 +#: stock/templates/stock/location.html:42 msgid "Locate stock location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan stock items into this location" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:60 msgid "Scan In Stock Items" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan stock container into this location" msgstr "" -#: stock/templates/stock/location.html:64 +#: stock/templates/stock/location.html:61 msgid "Scan In Container" msgstr "" -#: stock/templates/stock/location.html:75 +#: stock/templates/stock/location.html:72 #, fuzzy #| msgid "Print Order Reports" msgid "Print Location Report" msgstr "打印订单报表" -#: stock/templates/stock/location.html:104 +#: stock/templates/stock/location.html:101 msgid "Location actions" msgstr "仓储地操作" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:103 msgid "Edit location" msgstr "编辑仓储地" -#: stock/templates/stock/location.html:108 +#: stock/templates/stock/location.html:105 msgid "Delete location" msgstr "删除仓储地" -#: stock/templates/stock/location.html:138 +#: stock/templates/stock/location.html:135 msgid "Top level stock location" msgstr "" -#: stock/templates/stock/location.html:144 +#: stock/templates/stock/location.html:141 msgid "Location Owner" msgstr "" -#: stock/templates/stock/location.html:148 +#: stock/templates/stock/location.html:145 msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:176 +#: stock/templates/stock/location.html:173 #, fuzzy #| msgid "Location" msgid "Location Type" msgstr "地点" -#: stock/templates/stock/location.html:226 +#: stock/templates/stock/location.html:223 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:227 +#: stock/templates/stock/location.html:224 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:299 -#: templates/js/translated/stock.js:2653 +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2657 #, fuzzy #| msgid "Stock Location" msgid "stock location" msgstr "仓储地点" -#: stock/templates/stock/location.html:321 +#: stock/templates/stock/location.html:320 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:394 +#: stock/templates/stock/location.html:393 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:405 +#: stock/templates/stock/location.html:404 msgid "Link Barcode to Stock Location" msgstr "" @@ -11576,7 +11802,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:100 #: templates/js/translated/plugin.js:68 -#: templates/js/translated/table_filters.js:496 +#: templates/js/translated/table_filters.js:510 msgid "Builtin" msgstr "" @@ -11586,7 +11812,7 @@ msgstr "" #: templates/InvenTree/settings/plugin_settings.html:107 #: templates/js/translated/plugin.js:72 -#: templates/js/translated/table_filters.js:500 +#: templates/js/translated/table_filters.js:514 msgid "Sample" msgstr "" @@ -11697,9 +11923,9 @@ msgid "Rate" msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 -#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:105 -#: templates/js/translated/part.js:394 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:246 users/models.py:406 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:406 msgid "Delete" msgstr "删除" @@ -11728,7 +11954,7 @@ msgid "No project codes found" msgstr "无指定参数" #: templates/InvenTree/settings/settings_staff_js.html:158 -#: templates/js/translated/build.js:2403 +#: templates/js/translated/build.js:2400 msgid "group" msgstr "" @@ -11751,12 +11977,12 @@ msgid "No category parameter templates found" msgstr "未找到类别参数模板" #: templates/InvenTree/settings/settings_staff_js.html:308 -#: templates/js/translated/part.js:1651 +#: templates/js/translated/part.js:1649 msgid "Edit Template" msgstr "编辑模板" #: templates/InvenTree/settings/settings_staff_js.html:309 -#: templates/js/translated/part.js:1652 +#: templates/js/translated/part.js:1650 msgid "Delete Template" msgstr "删除模板" @@ -11766,50 +11992,50 @@ msgstr "删除模板" msgid "Edit Category Parameter Template" msgstr "删除类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:353 +#: templates/InvenTree/settings/settings_staff_js.html:352 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:388 +#: templates/InvenTree/settings/settings_staff_js.html:387 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: templates/InvenTree/settings/settings_staff_js.html:418 +#: templates/InvenTree/settings/settings_staff_js.html:416 msgid "Create Part Parameter Template" msgstr "" -#: templates/InvenTree/settings/settings_staff_js.html:440 +#: templates/InvenTree/settings/settings_staff_js.html:439 #, fuzzy #| msgid "No stock location set" msgid "No stock location types found" msgstr "未设置仓储地点" -#: templates/InvenTree/settings/settings_staff_js.html:461 +#: templates/InvenTree/settings/settings_staff_js.html:464 #, fuzzy #| msgid "Location actions" msgid "Location count" msgstr "仓储地操作" -#: templates/InvenTree/settings/settings_staff_js.html:466 -#: templates/InvenTree/settings/settings_staff_js.html:480 +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 #, fuzzy #| msgid "Edit location" msgid "Edit Location Type" msgstr "编辑仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:467 +#: templates/InvenTree/settings/settings_staff_js.html:470 #, fuzzy #| msgid "Delete location" msgid "Delete Location type" msgstr "删除仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:490 +#: templates/InvenTree/settings/settings_staff_js.html:493 #, fuzzy #| msgid "Delete location" msgid "Delete Location Type" msgstr "删除仓储地" -#: templates/InvenTree/settings/settings_staff_js.html:500 +#: templates/InvenTree/settings/settings_staff_js.html:503 #: templates/InvenTree/settings/stock.html:38 #, fuzzy #| msgid "New Location" @@ -11836,7 +12062,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/forms.js:2185 templates/js/translated/tables.js:543 +#: templates/js/translated/forms.js:2200 templates/js/translated/tables.js:543 #: templates/navbar.html:107 templates/search.html:8 #: templates/search_form.html:6 templates/search_form.html:7 msgid "Search" @@ -12156,7 +12382,7 @@ msgid "Submit Bug Report" msgstr "" #: templates/about.html:91 templates/clip.html:4 -#: templates/js/translated/helpers.js:589 +#: templates/js/translated/helpers.js:592 msgid "copy to clipboard" msgstr "" @@ -12413,7 +12639,7 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2747 msgid "Required Quantity" msgstr "" @@ -12427,7 +12653,7 @@ msgid "Click on the following link to view this part" msgstr "" #: templates/email/low_stock_notification.html:18 -#: templates/js/translated/part.js:3238 +#: templates/js/translated/part.js:3234 msgid "Minimum Quantity" msgstr "" @@ -12598,7 +12824,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1184 +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 msgid "Remove stock item" msgstr "" @@ -12790,7 +13016,7 @@ msgstr "" msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2673 msgid "Variant stock allowed" msgstr "" @@ -12810,32 +13036,32 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2812 #, fuzzy #| msgid "External Link" msgid "External stock" msgstr "外部链接" -#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2786 #: templates/js/translated/sales_order.js:1946 msgid "No Stock Available" msgstr "" -#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2790 msgid "Includes variant and substitute stock" msgstr "" -#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 -#: templates/js/translated/part.js:1262 +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2792 +#: templates/js/translated/part.js:1260 #: templates/js/translated/sales_order.js:1943 msgid "Includes variant stock" msgstr "" -#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2794 msgid "Includes substitute stock" msgstr "" -#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2777 msgid "Consumable item" msgstr "" @@ -12867,7 +13093,7 @@ msgstr "" msgid "No BOM items found" msgstr "" -#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2658 msgid "Required Part" msgstr "" @@ -12915,13 +13141,13 @@ msgstr "生产订单未完成" msgid "Complete Build Order" msgstr "生产订单完成" -#: templates/js/translated/build.js:369 templates/js/translated/stock.js:120 -#: templates/js/translated/stock.js:295 +#: templates/js/translated/build.js:369 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 msgid "Next available serial number" msgstr "" -#: templates/js/translated/build.js:371 templates/js/translated/stock.js:122 -#: templates/js/translated/stock.js:297 +#: templates/js/translated/build.js:371 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 msgid "Latest serial number" msgstr "" @@ -12981,13 +13207,13 @@ msgstr "是否确定取消生产?" msgid "Deallocate Stock Items" msgstr "选择库存项" -#: templates/js/translated/build.js:584 templates/js/translated/build.js:712 -#: templates/js/translated/build.js:838 +#: templates/js/translated/build.js:584 templates/js/translated/build.js:711 +#: templates/js/translated/build.js:836 msgid "Select Build Outputs" msgstr "" -#: templates/js/translated/build.js:585 templates/js/translated/build.js:713 -#: templates/js/translated/build.js:839 +#: templates/js/translated/build.js:585 templates/js/translated/build.js:712 +#: templates/js/translated/build.js:837 msgid "At least one build output must be selected" msgstr "" @@ -12997,340 +13223,340 @@ msgstr "" msgid "Selected build outputs will be marked as complete" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:603 templates/js/translated/build.js:737 -#: templates/js/translated/build.js:861 +#: templates/js/translated/build.js:603 templates/js/translated/build.js:736 +#: templates/js/translated/build.js:859 msgid "Output" msgstr "" -#: templates/js/translated/build.js:631 +#: templates/js/translated/build.js:630 msgid "Complete Build Outputs" msgstr "" -#: templates/js/translated/build.js:728 +#: templates/js/translated/build.js:727 #, fuzzy #| msgid "Delete any build outputs which have not been completed" msgid "Selected build outputs will be marked as scrapped" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:730 +#: templates/js/translated/build.js:729 #, fuzzy #| msgid "Delete any build outputs which have not been completed" msgid "Scrapped output are marked as rejected" msgstr "删除所有未完成的生产产出" -#: templates/js/translated/build.js:731 +#: templates/js/translated/build.js:730 #, fuzzy #| msgid "Stock item is over-allocated" msgid "Allocated stock items will no longer be available" msgstr "库存物品分配过度!" -#: templates/js/translated/build.js:732 +#: templates/js/translated/build.js:731 msgid "The completion status of the build order will not be adjusted" msgstr "" -#: templates/js/translated/build.js:763 +#: templates/js/translated/build.js:761 #, fuzzy #| msgid "Create Build Output" msgid "Scrap Build Outputs" msgstr "创建创建生产产出" -#: templates/js/translated/build.js:853 +#: templates/js/translated/build.js:851 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "Selected build outputs will be deleted" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/build.js:855 +#: templates/js/translated/build.js:853 #, fuzzy #| msgid "Build output is already completed" msgid "Build output data will be permanently deleted" msgstr "生产产出已完成" -#: templates/js/translated/build.js:856 +#: templates/js/translated/build.js:854 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "Allocated stock items will be returned to stock" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/build.js:874 +#: templates/js/translated/build.js:872 msgid "Delete Build Outputs" msgstr "" -#: templates/js/translated/build.js:961 +#: templates/js/translated/build.js:959 #, fuzzy #| msgid "Delete location" msgid "Delete allocations" msgstr "删除仓储地" -#: templates/js/translated/build.js:968 +#: templates/js/translated/build.js:966 #, fuzzy #| msgid "Delete Stock Location" msgid "Delete Stock Allocations" msgstr "删除仓储地点" -#: templates/js/translated/build.js:991 +#: templates/js/translated/build.js:989 #, fuzzy #| msgid "Unallocate stock" msgid "No allocated stock" msgstr "未分配库存" -#: templates/js/translated/build.js:1047 +#: templates/js/translated/build.js:1045 #, fuzzy #| msgid "Stock Item" msgid "Stock item" msgstr "库存项" -#: templates/js/translated/build.js:1072 +#: templates/js/translated/build.js:1070 #, fuzzy #| msgid "Edit location" msgid "Edit build allocation" msgstr "编辑仓储地" -#: templates/js/translated/build.js:1073 +#: templates/js/translated/build.js:1071 #, fuzzy #| msgid "Delete location" msgid "Delete build allocation" msgstr "删除仓储地" -#: templates/js/translated/build.js:1091 +#: templates/js/translated/build.js:1089 #, fuzzy #| msgid "Edit location" msgid "Edit Build Allocation" msgstr "编辑仓储地" -#: templates/js/translated/build.js:1104 +#: templates/js/translated/build.js:1102 #, fuzzy #| msgid "Delete location" msgid "Delete Build Allocation" msgstr "删除仓储地" -#: templates/js/translated/build.js:1135 +#: templates/js/translated/build.js:1133 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:1180 +#: templates/js/translated/build.js:1178 msgid "Location not specified" msgstr "未指定仓储地点" -#: templates/js/translated/build.js:1202 +#: templates/js/translated/build.js:1200 msgid "Complete outputs" msgstr "已完成输出" -#: templates/js/translated/build.js:1220 +#: templates/js/translated/build.js:1218 #, fuzzy #| msgid "Complete outputs" msgid "Scrap outputs" msgstr "已完成输出" -#: templates/js/translated/build.js:1238 +#: templates/js/translated/build.js:1236 msgid "Delete outputs" msgstr "删除输出" -#: templates/js/translated/build.js:1291 +#: templates/js/translated/build.js:1289 #, fuzzy #| msgid "Build output" msgid "build output" msgstr "生产产出" -#: templates/js/translated/build.js:1292 +#: templates/js/translated/build.js:1290 #, fuzzy #| msgid "Build output" msgid "build outputs" msgstr "生产产出" -#: templates/js/translated/build.js:1296 +#: templates/js/translated/build.js:1294 #, fuzzy #| msgid "Build actions" msgid "Build output actions" msgstr "生产操作" -#: templates/js/translated/build.js:1472 +#: templates/js/translated/build.js:1470 msgid "No active build outputs found" msgstr "" -#: templates/js/translated/build.js:1565 +#: templates/js/translated/build.js:1563 #, fuzzy #| msgid "Allocated Parts" msgid "Allocated Lines" msgstr "已分配的部件" -#: templates/js/translated/build.js:1579 +#: templates/js/translated/build.js:1577 msgid "Required Tests" msgstr "" -#: templates/js/translated/build.js:1751 +#: templates/js/translated/build.js:1749 #: templates/js/translated/purchase_order.js:611 #: templates/js/translated/sales_order.js:1207 msgid "Select Parts" msgstr "选择商品" -#: templates/js/translated/build.js:1752 +#: templates/js/translated/build.js:1750 #: templates/js/translated/sales_order.js:1208 msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/translated/build.js:1815 +#: templates/js/translated/build.js:1813 #: templates/js/translated/sales_order.js:1157 msgid "Specify stock allocation quantity" msgstr "" -#: templates/js/translated/build.js:1892 +#: templates/js/translated/build.js:1890 msgid "All Parts Allocated" msgstr "" -#: templates/js/translated/build.js:1893 +#: templates/js/translated/build.js:1891 msgid "All selected parts have been fully allocated" msgstr "" -#: templates/js/translated/build.js:1907 +#: templates/js/translated/build.js:1905 #: templates/js/translated/sales_order.js:1222 msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/translated/build.js:1935 +#: templates/js/translated/build.js:1933 msgid "Allocate Stock Items to Build Order" msgstr "" -#: templates/js/translated/build.js:1946 +#: templates/js/translated/build.js:1944 #: templates/js/translated/sales_order.js:1319 msgid "No matching stock locations" msgstr "" -#: templates/js/translated/build.js:2019 +#: templates/js/translated/build.js:2017 #: templates/js/translated/sales_order.js:1398 msgid "No matching stock items" msgstr "" -#: templates/js/translated/build.js:2116 +#: templates/js/translated/build.js:2114 msgid "Automatic Stock Allocation" msgstr "" -#: templates/js/translated/build.js:2117 +#: templates/js/translated/build.js:2115 msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" msgstr "" -#: templates/js/translated/build.js:2119 +#: templates/js/translated/build.js:2117 msgid "If a location is specified, stock will only be allocated from that location" msgstr "" -#: templates/js/translated/build.js:2120 +#: templates/js/translated/build.js:2118 msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" msgstr "" -#: templates/js/translated/build.js:2121 +#: templates/js/translated/build.js:2119 msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" msgstr "" -#: templates/js/translated/build.js:2152 +#: templates/js/translated/build.js:2149 msgid "Allocate Stock Items" msgstr "" -#: templates/js/translated/build.js:2257 +#: templates/js/translated/build.js:2254 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 -#: templates/js/translated/forms.js:2181 templates/js/translated/forms.js:2197 -#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 -#: templates/js/translated/stock.js:2064 templates/js/translated/stock.js:2791 +#: templates/js/translated/build.js:2289 templates/js/translated/build.js:2652 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 +#: templates/js/translated/part.js:2319 templates/js/translated/part.js:2758 +#: templates/js/translated/stock.js:2068 templates/js/translated/stock.js:2795 msgid "Select" msgstr "" -#: templates/js/translated/build.js:2306 +#: templates/js/translated/build.js:2303 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3123 +#: templates/js/translated/build.js:2385 templates/js/translated/stock.js:3126 msgid "No user information" msgstr "没有用户信息" -#: templates/js/translated/build.js:2564 +#: templates/js/translated/build.js:2561 #: templates/js/translated/sales_order.js:1682 msgid "Edit stock allocation" msgstr "" -#: templates/js/translated/build.js:2565 +#: templates/js/translated/build.js:2562 #: templates/js/translated/sales_order.js:1683 msgid "Delete stock allocation" msgstr "" -#: templates/js/translated/build.js:2580 +#: templates/js/translated/build.js:2577 msgid "Edit Allocation" msgstr "" -#: templates/js/translated/build.js:2592 +#: templates/js/translated/build.js:2589 msgid "Remove Allocation" msgstr "" -#: templates/js/translated/build.js:2631 +#: templates/js/translated/build.js:2628 #, fuzzy #| msgid "Build actions" msgid "build line" msgstr "生产操作" -#: templates/js/translated/build.js:2632 +#: templates/js/translated/build.js:2629 #, fuzzy #| msgid "Build actions" msgid "build lines" msgstr "生产操作" -#: templates/js/translated/build.js:2650 +#: templates/js/translated/build.js:2647 #, fuzzy #| msgid "Subcategories" msgid "No build lines found" msgstr "子类别" -#: templates/js/translated/build.js:2680 templates/js/translated/part.js:792 -#: templates/js/translated/part.js:1208 +#: templates/js/translated/build.js:2677 templates/js/translated/part.js:790 +#: templates/js/translated/part.js:1206 msgid "Trackable part" msgstr "可追溯商品" -#: templates/js/translated/build.js:2723 +#: templates/js/translated/build.js:2720 msgid "Gets Inherited" msgstr "" -#: templates/js/translated/build.js:2733 +#: templates/js/translated/build.js:2730 #, fuzzy #| msgid "Quantity" msgid "Unit Quantity" msgstr "数量" -#: templates/js/translated/build.js:2785 +#: templates/js/translated/build.js:2782 #: templates/js/translated/sales_order.js:1951 msgid "Sufficient stock available" msgstr "" -#: templates/js/translated/build.js:2840 +#: templates/js/translated/build.js:2837 #, fuzzy #| msgid "Minimum Stock" msgid "Consumable Item" msgstr "最低库存" -#: templates/js/translated/build.js:2847 +#: templates/js/translated/build.js:2844 #, fuzzy #| msgid "Stock Item" msgid "Tracked item" msgstr "库存项" -#: templates/js/translated/build.js:2848 +#: templates/js/translated/build.js:2845 msgid "Allocate tracked items against individual build outputs" msgstr "" -#: templates/js/translated/build.js:2856 +#: templates/js/translated/build.js:2853 #: templates/js/translated/sales_order.js:2052 msgid "Build stock" msgstr "" -#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1949 +#: templates/js/translated/build.js:2858 templates/js/translated/stock.js:1953 msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:2865 +#: templates/js/translated/build.js:2862 #: templates/js/translated/sales_order.js:2046 msgid "Allocate stock" msgstr "" -#: templates/js/translated/build.js:2869 +#: templates/js/translated/build.js:2866 #, fuzzy #| msgid "Confirm stock allocation" msgid "Remove stock allocation" @@ -13511,7 +13737,7 @@ msgid "Delete Parameters" msgstr "删除参数" #: templates/js/translated/company.js:1191 -#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2247 msgid "Order parts" msgstr "订购商品" @@ -13530,34 +13756,34 @@ msgid "No manufacturer parts found" msgstr "" #: templates/js/translated/company.js:1279 -#: templates/js/translated/company.js:1567 templates/js/translated/part.js:800 -#: templates/js/translated/part.js:1216 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:798 +#: templates/js/translated/part.js:1214 msgid "Template part" msgstr "" #: templates/js/translated/company.js:1283 -#: templates/js/translated/company.js:1571 templates/js/translated/part.js:804 -#: templates/js/translated/part.js:1220 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:802 +#: templates/js/translated/part.js:1218 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1470 +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1468 msgid "No parameters found" msgstr "无指定参数" -#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1533 +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1531 msgid "Edit parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1534 +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1532 msgid "Delete parameter" msgstr "删除参数" -#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1439 +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1437 msgid "Edit Parameter" msgstr "编辑参数" -#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1555 +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1553 msgid "Delete Parameter" msgstr "删除参数" @@ -13613,49 +13839,49 @@ msgstr "" msgid "Delete price break" msgstr "" -#: templates/js/translated/filters.js:186 -#: templates/js/translated/filters.js:667 +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 msgid "true" msgstr "" -#: templates/js/translated/filters.js:190 -#: templates/js/translated/filters.js:668 +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 msgid "false" msgstr "" -#: templates/js/translated/filters.js:214 +#: templates/js/translated/filters.js:217 msgid "Select filter" msgstr "选择筛选项" -#: templates/js/translated/filters.js:437 +#: templates/js/translated/filters.js:440 msgid "Print Labels" msgstr "打印标签" -#: templates/js/translated/filters.js:441 +#: templates/js/translated/filters.js:444 #, fuzzy #| msgid "Print Order Reports" msgid "Print Reports" msgstr "打印订单报表" -#: templates/js/translated/filters.js:453 +#: templates/js/translated/filters.js:456 #, fuzzy #| msgid "Download Image" msgid "Download table data" msgstr "下载图片" -#: templates/js/translated/filters.js:460 +#: templates/js/translated/filters.js:463 msgid "Reload table data" msgstr "" -#: templates/js/translated/filters.js:469 +#: templates/js/translated/filters.js:472 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:477 +#: templates/js/translated/filters.js:480 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:577 +#: templates/js/translated/filters.js:580 msgid "Create filter" msgstr "" @@ -13693,43 +13919,43 @@ msgstr "" msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1993 +#: templates/js/translated/forms.js:2008 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2304 templates/js/translated/search.js:239 +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2518 +#: templates/js/translated/forms.js:2532 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:3120 +#: templates/js/translated/forms.js:3134 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:3132 +#: templates/js/translated/forms.js:3146 msgid "Select Columns" msgstr "" -#: templates/js/translated/helpers.js:77 +#: templates/js/translated/helpers.js:80 msgid "YES" msgstr "" -#: templates/js/translated/helpers.js:80 +#: templates/js/translated/helpers.js:83 msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:93 +#: templates/js/translated/helpers.js:96 msgid "True" msgstr "" -#: templates/js/translated/helpers.js:94 +#: templates/js/translated/helpers.js:97 msgid "False" msgstr "" @@ -13820,7 +14046,7 @@ msgstr "" #: templates/js/translated/news.js:38 #: templates/js/translated/notification.js:46 -#: templates/js/translated/part.js:1610 +#: templates/js/translated/part.js:1608 msgid "ID" msgstr "" @@ -13848,409 +14074,422 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:89 +#: templates/js/translated/order.js:48 +#, fuzzy +#| msgid "Build Order" +msgid "Hold Order" +msgstr "生产订单" + +#: templates/js/translated/order.js:53 +#, fuzzy +#| msgid "Are you sure you wish to cancel this build?" +msgid "Are you sure you wish to place this order on hold?" +msgstr "是否确定取消生产?" + +#: templates/js/translated/order.js:114 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:126 +#: templates/js/translated/order.js:151 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:241 +#: templates/js/translated/order.js:266 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:255 +#: templates/js/translated/order.js:280 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:268 +#: templates/js/translated/order.js:293 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:2061 +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:369 +#: templates/js/translated/order.js:394 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:370 +#: templates/js/translated/order.js:395 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:374 +#: templates/js/translated/order.js:399 msgid "Delete line" msgstr "" -#: templates/js/translated/part.js:90 +#: templates/js/translated/part.js:91 msgid "Part Attributes" msgstr "商品属性" -#: templates/js/translated/part.js:94 +#: templates/js/translated/part.js:95 msgid "Part Creation Options" msgstr "商品创建选项" -#: templates/js/translated/part.js:98 +#: templates/js/translated/part.js:99 msgid "Part Duplication Options" msgstr "商品重复选项" -#: templates/js/translated/part.js:121 +#: templates/js/translated/part.js:122 msgid "Add Part Category" msgstr "增加商品类别" -#: templates/js/translated/part.js:334 templates/js/translated/stock.js:176 +#: templates/js/translated/part.js:331 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 msgid "Icon (optional) - Explore all available icons on" msgstr "" -#: templates/js/translated/part.js:354 +#: templates/js/translated/part.js:352 msgid "Create Part Category" msgstr "创建商品类别" -#: templates/js/translated/part.js:357 +#: templates/js/translated/part.js:355 #, fuzzy #| msgid "Create new part category" msgid "Create new category after this one" msgstr "新建商品类别" -#: templates/js/translated/part.js:358 +#: templates/js/translated/part.js:356 #, fuzzy #| msgid "Part category" msgid "Part category created" msgstr "商品类别" -#: templates/js/translated/part.js:372 +#: templates/js/translated/part.js:370 msgid "Edit Part Category" msgstr "编辑商品类别" -#: templates/js/translated/part.js:385 +#: templates/js/translated/part.js:383 msgid "Are you sure you want to delete this part category?" msgstr "" -#: templates/js/translated/part.js:390 +#: templates/js/translated/part.js:388 msgid "Move to parent category" msgstr "" -#: templates/js/translated/part.js:399 +#: templates/js/translated/part.js:397 msgid "Delete Part Category" msgstr "删除商品类别" -#: templates/js/translated/part.js:403 +#: templates/js/translated/part.js:401 msgid "Action for parts in this category" msgstr "" -#: templates/js/translated/part.js:408 +#: templates/js/translated/part.js:406 msgid "Action for child categories" msgstr "" -#: templates/js/translated/part.js:432 +#: templates/js/translated/part.js:430 msgid "Create Part" msgstr "创建商品" -#: templates/js/translated/part.js:434 +#: templates/js/translated/part.js:432 msgid "Create another part after this one" msgstr "" -#: templates/js/translated/part.js:435 +#: templates/js/translated/part.js:433 msgid "Part created successfully" msgstr "" -#: templates/js/translated/part.js:463 +#: templates/js/translated/part.js:461 msgid "Edit Part" msgstr "编辑商品" -#: templates/js/translated/part.js:465 +#: templates/js/translated/part.js:463 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:476 +#: templates/js/translated/part.js:474 msgid "Create Part Variant" msgstr "" -#: templates/js/translated/part.js:533 +#: templates/js/translated/part.js:531 msgid "Active Part" msgstr "" -#: templates/js/translated/part.js:534 +#: templates/js/translated/part.js:532 msgid "Part cannot be deleted as it is currently active" msgstr "" -#: templates/js/translated/part.js:548 +#: templates/js/translated/part.js:546 msgid "Deleting this part cannot be reversed" msgstr "" -#: templates/js/translated/part.js:550 +#: templates/js/translated/part.js:548 msgid "Any stock items for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:551 +#: templates/js/translated/part.js:549 msgid "This part will be removed from any Bills of Material" msgstr "" -#: templates/js/translated/part.js:552 +#: templates/js/translated/part.js:550 msgid "All manufacturer and supplier information for this part will be deleted" msgstr "" -#: templates/js/translated/part.js:559 +#: templates/js/translated/part.js:557 msgid "Delete Part" msgstr "" -#: templates/js/translated/part.js:595 +#: templates/js/translated/part.js:593 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:597 +#: templates/js/translated/part.js:595 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:602 +#: templates/js/translated/part.js:600 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:604 +#: templates/js/translated/part.js:602 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:621 +#: templates/js/translated/part.js:619 msgid "Validating the BOM will mark each line item as valid" msgstr "" -#: templates/js/translated/part.js:631 +#: templates/js/translated/part.js:629 msgid "Validate Bill of Materials" msgstr "" -#: templates/js/translated/part.js:634 +#: templates/js/translated/part.js:632 msgid "Validated Bill of Materials" msgstr "" -#: templates/js/translated/part.js:659 +#: templates/js/translated/part.js:657 msgid "Copy Bill of Materials" msgstr "" -#: templates/js/translated/part.js:687 -#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/part.js:685 +#: templates/js/translated/table_filters.js:766 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:690 +#: templates/js/translated/part.js:688 msgid "No stock available" msgstr "" -#: templates/js/translated/part.js:750 +#: templates/js/translated/part.js:748 msgid "Demand" msgstr "" -#: templates/js/translated/part.js:773 +#: templates/js/translated/part.js:771 msgid "Unit" msgstr "" -#: templates/js/translated/part.js:796 templates/js/translated/part.js:1212 +#: templates/js/translated/part.js:794 templates/js/translated/part.js:1210 msgid "Virtual part" msgstr "虚拟商品" -#: templates/js/translated/part.js:808 +#: templates/js/translated/part.js:806 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:812 +#: templates/js/translated/part.js:810 msgid "Salable part" msgstr "可销售商品" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Schedule generation of a new stocktake report." msgstr "" -#: templates/js/translated/part.js:895 +#: templates/js/translated/part.js:893 msgid "Once complete, the stocktake report will be available for download." msgstr "" -#: templates/js/translated/part.js:903 +#: templates/js/translated/part.js:901 msgid "Generate Stocktake Report" msgstr "" -#: templates/js/translated/part.js:907 +#: templates/js/translated/part.js:905 msgid "Stocktake report scheduled" msgstr "" -#: templates/js/translated/part.js:1056 +#: templates/js/translated/part.js:1054 msgid "No stocktake information available" msgstr "" -#: templates/js/translated/part.js:1114 templates/js/translated/part.js:1150 +#: templates/js/translated/part.js:1112 templates/js/translated/part.js:1148 msgid "Edit Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1116 templates/js/translated/part.js:1158 msgid "Delete Stocktake Entry" msgstr "" -#: templates/js/translated/part.js:1287 +#: templates/js/translated/part.js:1285 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:1605 +#: templates/js/translated/part.js:1603 msgid "No part parameter templates found" msgstr "未找到商品参数模板" -#: templates/js/translated/part.js:1668 +#: templates/js/translated/part.js:1666 msgid "Edit Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1680 +#: templates/js/translated/part.js:1678 msgid "Any parameters which reference this template will also be deleted" msgstr "" -#: templates/js/translated/part.js:1688 +#: templates/js/translated/part.js:1686 msgid "Delete Part Parameter Template" msgstr "" -#: templates/js/translated/part.js:1722 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/part.js:1720 +#: templates/js/translated/purchase_order.js:1724 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/part.js:1866 -#: templates/js/translated/purchase_order.js:2224 -#: templates/js/translated/return_order.js:755 +#: templates/js/translated/part.js:1864 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 #: templates/js/translated/sales_order.js:1911 msgid "This line item is overdue" msgstr "" -#: templates/js/translated/part.js:1912 -#: templates/js/translated/purchase_order.js:2291 +#: templates/js/translated/part.js:1910 +#: templates/js/translated/purchase_order.js:2290 msgid "Receive line item" msgstr "" -#: templates/js/translated/part.js:1975 +#: templates/js/translated/part.js:1973 msgid "Delete part relationship" msgstr "" -#: templates/js/translated/part.js:1997 +#: templates/js/translated/part.js:1995 msgid "Delete Part Relationship" msgstr "" -#: templates/js/translated/part.js:2085 templates/js/translated/part.js:2525 +#: templates/js/translated/part.js:2083 templates/js/translated/part.js:2522 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:2206 +#: templates/js/translated/part.js:2204 msgid "Set the part category for the selected parts" msgstr "" -#: templates/js/translated/part.js:2211 +#: templates/js/translated/part.js:2209 msgid "Set Part Category" msgstr "设置商品类别" -#: templates/js/translated/part.js:2241 +#: templates/js/translated/part.js:2238 msgid "Set category" msgstr "设置类别" -#: templates/js/translated/part.js:2293 +#: templates/js/translated/part.js:2290 #, fuzzy #| msgid "Edit part" msgid "part" msgstr "编辑商品" -#: templates/js/translated/part.js:2294 +#: templates/js/translated/part.js:2291 #, fuzzy #| msgid "Parts" msgid "parts" msgstr "商品" -#: templates/js/translated/part.js:2390 +#: templates/js/translated/part.js:2387 msgid "No category" msgstr "没有分类" -#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 -#: templates/js/translated/stock.js:2750 +#: templates/js/translated/part.js:2547 templates/js/translated/part.js:2677 +#: templates/js/translated/stock.js:2754 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:2566 +#: templates/js/translated/part.js:2563 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:2664 +#: templates/js/translated/part.js:2661 #, fuzzy #| msgid "Subcategories" msgid "No subcategories found" msgstr "子类别" -#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2770 +#: templates/js/translated/part.js:2697 templates/js/translated/stock.js:2774 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:2780 +#: templates/js/translated/part.js:2777 msgid "Load Subcategories" msgstr "" -#: templates/js/translated/part.js:2796 +#: templates/js/translated/part.js:2792 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:2884 +#: templates/js/translated/part.js:2880 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:2906 templates/js/translated/search.js:342 +#: templates/js/translated/part.js:2902 templates/js/translated/search.js:342 msgid "results" msgstr "" -#: templates/js/translated/part.js:2956 +#: templates/js/translated/part.js:2952 #, fuzzy #| msgid "Edit Template" msgid "Edit test template" msgstr "编辑模板" -#: templates/js/translated/part.js:2957 +#: templates/js/translated/part.js:2953 #, fuzzy #| msgid "Delete Template" msgid "Delete test template" msgstr "删除模板" -#: templates/js/translated/part.js:2961 +#: templates/js/translated/part.js:2957 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:2977 +#: templates/js/translated/part.js:2973 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:2991 +#: templates/js/translated/part.js:2987 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:3070 templates/js/translated/part.js:3071 +#: templates/js/translated/part.js:3066 templates/js/translated/part.js:3067 msgid "No date specified" msgstr "" -#: templates/js/translated/part.js:3073 +#: templates/js/translated/part.js:3069 msgid "Specified date is in the past" msgstr "" -#: templates/js/translated/part.js:3079 +#: templates/js/translated/part.js:3075 msgid "Speculative" msgstr "" -#: templates/js/translated/part.js:3129 +#: templates/js/translated/part.js:3125 msgid "No scheduling information available for this part" msgstr "" -#: templates/js/translated/part.js:3135 +#: templates/js/translated/part.js:3131 msgid "Error fetching scheduling information for this part" msgstr "" -#: templates/js/translated/part.js:3231 +#: templates/js/translated/part.js:3227 msgid "Scheduled Stock Quantities" msgstr "" -#: templates/js/translated/part.js:3247 +#: templates/js/translated/part.js:3243 msgid "Maximum Quantity" msgstr "" -#: templates/js/translated/part.js:3292 +#: templates/js/translated/part.js:3288 msgid "Minimum Stock Level" msgstr "" @@ -14480,7 +14719,7 @@ msgid "Quantity to receive" msgstr "" #: templates/js/translated/purchase_order.js:1170 -#: templates/js/translated/stock.js:1211 +#: templates/js/translated/stock.js:1215 #, fuzzy #| msgid "Select Stock Items" msgid "Specify packaging for incoming stock items" @@ -14542,81 +14781,81 @@ msgstr "订单编码" msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1396 -#: templates/js/translated/return_order.js:560 +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1397 +#: templates/js/translated/purchase_order.js:1396 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1465 +#: templates/js/translated/purchase_order.js:1464 #, fuzzy #| msgid "Scan Barcode" msgid "Scan Item Barcode" msgstr "扫描条形码" -#: templates/js/translated/purchase_order.js:1466 +#: templates/js/translated/purchase_order.js:1465 msgid "Scan barcode on incoming item (must not match any existing stock items)" msgstr "" -#: templates/js/translated/purchase_order.js:1480 +#: templates/js/translated/purchase_order.js:1479 #, fuzzy #| msgid "Enter barcode data" msgid "Invalid barcode data" msgstr "输入条形码数据" -#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1751 #: templates/js/translated/return_order.js:285 #: templates/js/translated/sales_order.js:810 #: templates/js/translated/sales_order.js:1034 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1914 +#: templates/js/translated/purchase_order.js:1913 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "All selected Line items will be deleted" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/purchase_order.js:1932 +#: templates/js/translated/purchase_order.js:1931 #, fuzzy #| msgid "Allocate selected items" msgid "Delete selected Line items?" msgstr "分配选定项目" -#: templates/js/translated/purchase_order.js:1987 +#: templates/js/translated/purchase_order.js:1986 #: templates/js/translated/sales_order.js:2106 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2002 +#: templates/js/translated/purchase_order.js:2001 #: templates/js/translated/return_order.js:475 -#: templates/js/translated/return_order.js:668 +#: templates/js/translated/return_order.js:667 #: templates/js/translated/sales_order.js:2119 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2013 -#: templates/js/translated/return_order.js:681 +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 #: templates/js/translated/sales_order.js:2130 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/purchase_order.js:2294 #: templates/js/translated/sales_order.js:2060 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2296 -#: templates/js/translated/return_order.js:800 +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 #: templates/js/translated/sales_order.js:2061 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2297 -#: templates/js/translated/return_order.js:804 +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 #: templates/js/translated/sales_order.js:2067 msgid "Delete line item" msgstr "" @@ -14687,16 +14926,16 @@ msgstr "无指定参数" msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:561 +#: templates/js/translated/return_order.js:560 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:692 +#: templates/js/translated/return_order.js:691 #: templates/js/translated/sales_order.js:2267 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:797 +#: templates/js/translated/return_order.js:796 msgid "Mark item as received" msgstr "" @@ -14861,7 +15100,7 @@ msgstr "" #: templates/js/translated/sales_order.js:1659 #: templates/js/translated/sales_order.js:1746 -#: templates/js/translated/stock.js:1857 +#: templates/js/translated/stock.js:1861 msgid "Shipped to customer" msgstr "" @@ -14919,553 +15158,557 @@ msgstr "" msgid "Remove results" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:106 msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:130 +#: templates/js/translated/stock.js:137 msgid "Confirm Stock Serialization" msgstr "" -#: templates/js/translated/stock.js:140 -msgid "Default icon for all locations that have no icon set (optional) - Explore all available icons on" -msgstr "" - -#: templates/js/translated/stock.js:167 +#: templates/js/translated/stock.js:173 #, fuzzy #| msgid "Location" msgid "Add Location type" msgstr "地点" -#: templates/js/translated/stock.js:203 +#: templates/js/translated/stock.js:209 msgid "Edit Stock Location" msgstr "编辑仓储地点" -#: templates/js/translated/stock.js:218 +#: templates/js/translated/stock.js:224 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:220 +#: templates/js/translated/stock.js:226 msgid "Create another location after this one" msgstr "" -#: templates/js/translated/stock.js:221 +#: templates/js/translated/stock.js:227 #, fuzzy #| msgid "Stock item created" msgid "Stock location created" msgstr "库存项已创建" -#: templates/js/translated/stock.js:235 +#: templates/js/translated/stock.js:241 msgid "Are you sure you want to delete this stock location?" msgstr "确实要删除此仓储地点吗?" -#: templates/js/translated/stock.js:242 +#: templates/js/translated/stock.js:248 msgid "Move to parent stock location" msgstr "" -#: templates/js/translated/stock.js:251 +#: templates/js/translated/stock.js:257 msgid "Delete Stock Location" msgstr "删除仓储地点" -#: templates/js/translated/stock.js:255 +#: templates/js/translated/stock.js:261 msgid "Action for stock items in this stock location" msgstr "" -#: templates/js/translated/stock.js:260 +#: templates/js/translated/stock.js:266 msgid "Action for sub-locations" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:320 msgid "This part cannot be serialized" msgstr "" -#: templates/js/translated/stock.js:350 +#: templates/js/translated/stock.js:356 msgid "Add given quantity as packs instead of individual items" msgstr "" -#: templates/js/translated/stock.js:363 +#: templates/js/translated/stock.js:368 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:369 +#: templates/js/translated/stock.js:374 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:440 +#: templates/js/translated/stock.js:445 msgid "Stock item duplicated" msgstr "" -#: templates/js/translated/stock.js:460 +#: templates/js/translated/stock.js:465 msgid "Duplicate Stock Item" msgstr "" -#: templates/js/translated/stock.js:476 +#: templates/js/translated/stock.js:481 msgid "Are you sure you want to delete this stock item?" msgstr "" -#: templates/js/translated/stock.js:481 +#: templates/js/translated/stock.js:486 msgid "Delete Stock Item" msgstr "" -#: templates/js/translated/stock.js:502 +#: templates/js/translated/stock.js:507 msgid "Edit Stock Item" msgstr "" -#: templates/js/translated/stock.js:544 +#: templates/js/translated/stock.js:549 msgid "Create another item after this one" msgstr "" -#: templates/js/translated/stock.js:556 +#: templates/js/translated/stock.js:561 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:569 +#: templates/js/translated/stock.js:574 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:599 msgid "Find Serial Number" msgstr "" -#: templates/js/translated/stock.js:598 templates/js/translated/stock.js:599 +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 msgid "Enter serial number" msgstr "" -#: templates/js/translated/stock.js:615 +#: templates/js/translated/stock.js:620 msgid "Enter a serial number" msgstr "" -#: templates/js/translated/stock.js:635 +#: templates/js/translated/stock.js:640 msgid "No matching serial number" msgstr "" -#: templates/js/translated/stock.js:644 +#: templates/js/translated/stock.js:649 msgid "More than one matching result found" msgstr "" -#: templates/js/translated/stock.js:752 +#: templates/js/translated/stock.js:757 msgid "Confirm stock assignment" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:758 msgid "Assign Stock to Customer" msgstr "" -#: templates/js/translated/stock.js:830 +#: templates/js/translated/stock.js:835 msgid "Warning: Merge operation cannot be reversed" msgstr "" -#: templates/js/translated/stock.js:831 +#: templates/js/translated/stock.js:836 msgid "Some information will be lost when merging stock items" msgstr "" -#: templates/js/translated/stock.js:833 +#: templates/js/translated/stock.js:838 msgid "Stock transaction history will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:834 +#: templates/js/translated/stock.js:839 msgid "Supplier part information will be deleted for merged items" msgstr "" -#: templates/js/translated/stock.js:929 +#: templates/js/translated/stock.js:933 msgid "Confirm stock item merge" msgstr "" -#: templates/js/translated/stock.js:930 +#: templates/js/translated/stock.js:934 msgid "Merge Stock Items" msgstr "" -#: templates/js/translated/stock.js:1027 +#: templates/js/translated/stock.js:1031 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:1028 +#: templates/js/translated/stock.js:1032 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:1034 +#: templates/js/translated/stock.js:1038 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:1035 +#: templates/js/translated/stock.js:1039 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:1039 +#: templates/js/translated/stock.js:1043 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:1040 +#: templates/js/translated/stock.js:1044 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:1044 +#: templates/js/translated/stock.js:1048 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1045 users/models.py:396 +#: templates/js/translated/stock.js:1049 users/models.py:396 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:1049 +#: templates/js/translated/stock.js:1053 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1152 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:1164 +#: templates/js/translated/stock.js:1168 #, fuzzy #| msgid "Barcode" msgid "Adjust batch code" msgstr "条形码" -#: templates/js/translated/stock.js:1174 +#: templates/js/translated/stock.js:1178 #, fuzzy #| msgid "Part packaging" msgid "Adjust packaging" msgstr "商品打包" -#: templates/js/translated/stock.js:1252 templates/js/translated/stock.js:3380 +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3382 msgid "Select Stock Items" msgstr "选择库存项" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1257 msgid "Select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:1299 +#: templates/js/translated/stock.js:1303 msgid "Confirm stock adjustment" msgstr "" -#: templates/js/translated/stock.js:1444 +#: templates/js/translated/stock.js:1448 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:1446 +#: templates/js/translated/stock.js:1450 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:1451 +#: templates/js/translated/stock.js:1455 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:1531 +#: templates/js/translated/stock.js:1535 msgid "Pass test" msgstr "" -#: templates/js/translated/stock.js:1534 +#: templates/js/translated/stock.js:1538 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:1537 +#: templates/js/translated/stock.js:1541 msgid "Edit test result" msgstr "" -#: templates/js/translated/stock.js:1538 templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 msgid "Delete test result" msgstr "" -#: templates/js/translated/stock.js:1557 +#: templates/js/translated/stock.js:1561 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:1621 +#: templates/js/translated/stock.js:1625 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:1634 +#: templates/js/translated/stock.js:1638 msgid "Test started" msgstr "" -#: templates/js/translated/stock.js:1643 +#: templates/js/translated/stock.js:1647 msgid "Test finished" msgstr "" -#: templates/js/translated/stock.js:1797 +#: templates/js/translated/stock.js:1801 msgid "Edit Test Result" msgstr "" -#: templates/js/translated/stock.js:1817 +#: templates/js/translated/stock.js:1821 msgid "Delete Test Result" msgstr "" -#: templates/js/translated/stock.js:1849 +#: templates/js/translated/stock.js:1853 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:1853 +#: templates/js/translated/stock.js:1857 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:1861 +#: templates/js/translated/stock.js:1865 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:1867 +#: templates/js/translated/stock.js:1871 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:1923 +#: templates/js/translated/stock.js:1927 msgid "Change stock status" msgstr "" -#: templates/js/translated/stock.js:1932 +#: templates/js/translated/stock.js:1936 msgid "Merge stock" msgstr "" -#: templates/js/translated/stock.js:1981 +#: templates/js/translated/stock.js:1985 msgid "Delete stock" msgstr "" -#: templates/js/translated/stock.js:2034 +#: templates/js/translated/stock.js:2038 #, fuzzy #| msgid "Stock Items" msgid "stock items" msgstr "库存项" -#: templates/js/translated/stock.js:2039 +#: templates/js/translated/stock.js:2043 #, fuzzy #| msgid "Stock Location" msgid "Scan to location" msgstr "仓储地点" -#: templates/js/translated/stock.js:2050 +#: templates/js/translated/stock.js:2054 #, fuzzy #| msgid "Stock Locations" msgid "Stock Actions" msgstr "仓储地点" -#: templates/js/translated/stock.js:2094 +#: templates/js/translated/stock.js:2098 #, fuzzy #| msgid "Installed into assembly" msgid "Load installed items" msgstr "安装到组装中" -#: templates/js/translated/stock.js:2172 +#: templates/js/translated/stock.js:2176 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:2177 +#: templates/js/translated/stock.js:2181 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:2180 +#: templates/js/translated/stock.js:2184 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:2183 +#: templates/js/translated/stock.js:2187 msgid "Serialized stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:2185 +#: templates/js/translated/stock.js:2189 msgid "Stock item has been fully allocated" msgstr "" -#: templates/js/translated/stock.js:2187 +#: templates/js/translated/stock.js:2191 msgid "Stock item has been partially allocated" msgstr "" -#: templates/js/translated/stock.js:2190 +#: templates/js/translated/stock.js:2194 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:2192 +#: templates/js/translated/stock.js:2196 #, fuzzy #| msgid "Accept as consumed by this build order" msgid "Stock item has been consumed by a build order" msgstr "接受此构建订单所消耗的内容" -#: templates/js/translated/stock.js:2196 +#: templates/js/translated/stock.js:2200 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:2198 +#: templates/js/translated/stock.js:2202 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:2203 +#: templates/js/translated/stock.js:2207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:2205 +#: templates/js/translated/stock.js:2209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:2207 +#: templates/js/translated/stock.js:2211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:2211 +#: templates/js/translated/stock.js:2215 #: templates/js/translated/table_filters.js:350 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:2376 +#: templates/js/translated/stock.js:2380 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:2423 +#: templates/js/translated/stock.js:2427 #, fuzzy #| msgid "Stock Source" msgid "Stock Value" msgstr "库存来源" -#: templates/js/translated/stock.js:2551 +#: templates/js/translated/stock.js:2555 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:2654 +#: templates/js/translated/stock.js:2658 #, fuzzy #| msgid "Stock Locations" msgid "stock locations" msgstr "仓储地点" -#: templates/js/translated/stock.js:2809 +#: templates/js/translated/stock.js:2813 #, fuzzy #| msgid "Stock Locations" msgid "Load Sublocations" msgstr "仓储地点" -#: templates/js/translated/stock.js:2927 +#: templates/js/translated/stock.js:2930 msgid "Details" msgstr "详情" -#: templates/js/translated/stock.js:2931 +#: templates/js/translated/stock.js:2934 #, fuzzy #| msgid "Change" msgid "No changes" msgstr "更改" -#: templates/js/translated/stock.js:2943 +#: templates/js/translated/stock.js:2946 msgid "Part information unavailable" msgstr "" -#: templates/js/translated/stock.js:2965 +#: templates/js/translated/stock.js:2968 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:2982 +#: templates/js/translated/stock.js:2985 #, fuzzy #| msgid "Sales Order Settings" msgid "Build order no longer exists" msgstr "销售订单设置" -#: templates/js/translated/stock.js:2997 +#: templates/js/translated/stock.js:3000 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3014 +#: templates/js/translated/stock.js:3017 #, fuzzy #| msgid "Sales Order Settings" msgid "Sales Order no longer exists" msgstr "销售订单设置" -#: templates/js/translated/stock.js:3031 +#: templates/js/translated/stock.js:3034 msgid "Return Order no longer exists" msgstr "" -#: templates/js/translated/stock.js:3050 +#: templates/js/translated/stock.js:3053 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:3068 +#: templates/js/translated/stock.js:3071 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:3086 +#: templates/js/translated/stock.js:3089 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:3094 +#: templates/js/translated/stock.js:3097 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:3166 +#: templates/js/translated/stock.js:3169 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:3220 templates/js/translated/stock.js:3256 +#: templates/js/translated/stock.js:3223 templates/js/translated/stock.js:3259 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/stock.js:3278 +#: templates/js/translated/stock.js:3280 msgid "Select stock item to uninstall" msgstr "" -#: templates/js/translated/stock.js:3299 +#: templates/js/translated/stock.js:3301 msgid "Install another stock item into this item" msgstr "" -#: templates/js/translated/stock.js:3300 +#: templates/js/translated/stock.js:3302 msgid "Stock items can only be installed if they meet the following criteria" msgstr "" -#: templates/js/translated/stock.js:3302 +#: templates/js/translated/stock.js:3304 msgid "The Stock Item links to a Part which is the BOM for this Stock Item" msgstr "" -#: templates/js/translated/stock.js:3303 +#: templates/js/translated/stock.js:3305 msgid "The Stock Item is currently available in stock" msgstr "" -#: templates/js/translated/stock.js:3304 +#: templates/js/translated/stock.js:3306 msgid "The Stock Item is not already installed in another item" msgstr "" -#: templates/js/translated/stock.js:3305 +#: templates/js/translated/stock.js:3307 msgid "The Stock Item is tracked by either a batch code or serial number" msgstr "" -#: templates/js/translated/stock.js:3318 +#: templates/js/translated/stock.js:3320 msgid "Select part to install" msgstr "" -#: templates/js/translated/stock.js:3381 +#: templates/js/translated/stock.js:3383 #, fuzzy #| msgid "Select Stock Items" msgid "Select one or more stock items" msgstr "选择库存项" -#: templates/js/translated/stock.js:3394 +#: templates/js/translated/stock.js:3396 #, fuzzy #| msgid "Select Stock Items" msgid "Selected stock items" msgstr "选择库存项" -#: templates/js/translated/stock.js:3398 +#: templates/js/translated/stock.js:3400 #, fuzzy #| msgid "Stock Settings" msgid "Change Stock Status" msgstr "库存设置" +#: templates/js/translated/stock.js:3477 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3485 +msgid "This month" +msgstr "" + #: templates/js/translated/table_filters.js:74 msgid "Has project code" msgstr "" #: templates/js/translated/table_filters.js:89 -#: templates/js/translated/table_filters.js:605 -#: templates/js/translated/table_filters.js:617 -#: templates/js/translated/table_filters.js:658 +#: templates/js/translated/table_filters.js:619 +#: templates/js/translated/table_filters.js:631 +#: templates/js/translated/table_filters.js:672 msgid "Order status" msgstr "" #: templates/js/translated/table_filters.js:94 -#: templates/js/translated/table_filters.js:622 -#: templates/js/translated/table_filters.js:648 -#: templates/js/translated/table_filters.js:663 +#: templates/js/translated/table_filters.js:636 +#: templates/js/translated/table_filters.js:662 +#: templates/js/translated/table_filters.js:677 msgid "Outstanding" msgstr "" #: templates/js/translated/table_filters.js:102 -#: templates/js/translated/table_filters.js:528 -#: templates/js/translated/table_filters.js:630 -#: templates/js/translated/table_filters.js:671 +#: templates/js/translated/table_filters.js:542 +#: templates/js/translated/table_filters.js:644 +#: templates/js/translated/table_filters.js:685 msgid "Assigned to me" msgstr "" @@ -15502,12 +15745,12 @@ msgstr "未设置仓储地点" #: templates/js/translated/table_filters.js:278 #: templates/js/translated/table_filters.js:279 -#: templates/js/translated/table_filters.js:711 +#: templates/js/translated/table_filters.js:725 msgid "Include subcategories" msgstr "" #: templates/js/translated/table_filters.js:287 -#: templates/js/translated/table_filters.js:764 +#: templates/js/translated/table_filters.js:778 msgid "Subscribed" msgstr "" @@ -15549,7 +15792,7 @@ msgid "Batch code" msgstr "" #: templates/js/translated/table_filters.js:325 -#: templates/js/translated/table_filters.js:700 +#: templates/js/translated/table_filters.js:714 msgid "Active parts" msgstr "" @@ -15650,62 +15893,74 @@ msgstr "" msgid "Include Installed Items" msgstr "" -#: templates/js/translated/table_filters.js:515 +#: templates/js/translated/table_filters.js:471 +#, fuzzy +#| msgid "Internal Part" +msgid "Interval start" +msgstr "内部商品" + +#: templates/js/translated/table_filters.js:475 +#, fuzzy +#| msgid "Internal Prices" +msgid "Interval end" +msgstr "内部价格" + +#: templates/js/translated/table_filters.js:529 msgid "Build status" msgstr "生产状态" -#: templates/js/translated/table_filters.js:712 +#: templates/js/translated/table_filters.js:726 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:717 +#: templates/js/translated/table_filters.js:731 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:722 +#: templates/js/translated/table_filters.js:736 #, fuzzy #| msgid "Show related parts" msgid "Show locked parts" msgstr "显示相关商品" -#: templates/js/translated/table_filters.js:730 +#: templates/js/translated/table_filters.js:744 msgid "Available stock" msgstr "" -#: templates/js/translated/table_filters.js:738 -#: templates/js/translated/table_filters.js:838 +#: templates/js/translated/table_filters.js:752 +#: templates/js/translated/table_filters.js:852 #, fuzzy #| msgid "Units" msgid "Has Units" msgstr "单位" -#: templates/js/translated/table_filters.js:739 +#: templates/js/translated/table_filters.js:753 #, fuzzy #| msgid "Parameter units" msgid "Part has defined units" msgstr "参数单位" -#: templates/js/translated/table_filters.js:743 +#: templates/js/translated/table_filters.js:757 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:744 +#: templates/js/translated/table_filters.js:758 msgid "Part has internal part number" msgstr "商品有内部编号" -#: templates/js/translated/table_filters.js:748 +#: templates/js/translated/table_filters.js:762 msgid "In stock" msgstr "" -#: templates/js/translated/table_filters.js:756 +#: templates/js/translated/table_filters.js:770 msgid "Purchasable" msgstr "" -#: templates/js/translated/table_filters.js:768 +#: templates/js/translated/table_filters.js:782 msgid "Has stocktake entries" msgstr "" -#: templates/js/translated/table_filters.js:834 +#: templates/js/translated/table_filters.js:848 #, fuzzy #| msgid "Units" msgid "Has Choices" @@ -15984,6 +16239,14 @@ msgstr "电子邮件设置" msgid "Email settings not configured" msgstr "电子邮件设置未配置" +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + #: templates/yesnolabel.html:4 msgid "Yes" msgstr "确定" diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 1850439602..d5618d26d7 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -360,6 +360,12 @@ class PurchaseOrderContextMixin: return context +class PurchaseOrderHold(PurchaseOrderContextMixin, CreateAPI): + """API endpoint to place a PurchaseOrder on hold.""" + + serializer_class = serializers.PurchaseOrderHoldSerializer + + class PurchaseOrderCancel(PurchaseOrderContextMixin, CreateAPI): """API endpoint to 'cancel' a purchase order. @@ -893,6 +899,12 @@ class SalesOrderContextMixin: return ctx +class SalesOrderHold(SalesOrderContextMixin, CreateAPI): + """API endpoint to place a SalesOrder on hold.""" + + serializer_class = serializers.SalesOrderHoldSerializer + + class SalesOrderCancel(SalesOrderContextMixin, CreateAPI): """API endpoint to cancel a SalesOrder.""" @@ -1042,7 +1054,9 @@ class SalesOrderShipmentList(ListCreateAPI): serializer_class = serializers.SalesOrderShipmentSerializer filterset_class = SalesOrderShipmentFilter - filter_backends = [rest_filters.DjangoFilterBackend] + filter_backends = SEARCH_ORDER_FILTER_ALIAS + + ordering_fields = ['delivery_date', 'shipment_date'] class SalesOrderShipmentDetail(RetrieveUpdateDestroyAPI): @@ -1196,6 +1210,12 @@ class ReturnOrderCancel(ReturnOrderContextMixin, CreateAPI): serializer_class = serializers.ReturnOrderCancelSerializer +class ReturnOrderHold(ReturnOrderContextMixin, CreateAPI): + """API endpoint to hold a ReturnOrder.""" + + serializer_class = serializers.ReturnOrderHoldSerializer + + class ReturnOrderComplete(ReturnOrderContextMixin, CreateAPI): """API endpoint to complete a ReturnOrder.""" @@ -1479,6 +1499,7 @@ order_api_urls = [ path( 'cancel/', PurchaseOrderCancel.as_view(), name='api-po-cancel' ), + path('hold/', PurchaseOrderHold.as_view(), name='api-po-hold'), path( 'complete/', PurchaseOrderComplete.as_view(), @@ -1608,6 +1629,7 @@ order_api_urls = [ SalesOrderAllocateSerials.as_view(), name='api-so-allocate-serials', ), + path('hold/', SalesOrderHold.as_view(), name='api-so-hold'), path('cancel/', SalesOrderCancel.as_view(), name='api-so-cancel'), path('issue/', SalesOrderIssue.as_view(), name='api-so-issue'), path( @@ -1707,6 +1729,7 @@ order_api_urls = [ ReturnOrderCancel.as_view(), name='api-return-order-cancel', ), + path('hold/', ReturnOrderHold.as_view(), name='api-ro-hold'), path( 'complete/', ReturnOrderComplete.as_view(), diff --git a/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py b/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py index cf9cd1e0e2..3cba8ed07c 100644 --- a/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py +++ b/src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py @@ -5,6 +5,8 @@ import django.core.validators from django.db import migrations, models import django.db.models.deletion +from order.status_codes import PurchaseOrderStatus + class Migration(migrations.Migration): @@ -17,7 +19,12 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='purchaseorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Placed'), (30, 'Complete'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Purchase order status'), + field=models.PositiveIntegerField( + choices=PurchaseOrderStatus.items(), + default=PurchaseOrderStatus.PENDING.value, + help_text='Purchase order status', + verbose_name='Status', + ), ), migrations.AlterField( model_name='salesorder', diff --git a/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py b/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py index aa96291e33..49290b4349 100644 --- a/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py +++ b/src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py @@ -2,6 +2,8 @@ from django.db import migrations, models +from order.status_codes import ReturnOrderStatus + class Migration(migrations.Migration): @@ -23,7 +25,11 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='returnorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'In Progress'), (30, 'Complete'), (40, 'Cancelled')], default=10, help_text='Return order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=ReturnOrderStatus.items(), + default=ReturnOrderStatus.PENDING.value, + help_text='Return order status', verbose_name='Status' + ), ), migrations.AlterField( model_name='salesorder', diff --git a/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py b/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py index eaf4029917..dd6c0326bf 100644 --- a/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py +++ b/src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py @@ -2,6 +2,8 @@ from django.db import migrations, models +from order.status_codes import SalesOrderStatus + class Migration(migrations.Migration): @@ -13,6 +15,10 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='salesorder', name='status', - field=models.PositiveIntegerField(choices=[(10, 'Pending'), (15, 'In Progress'), (20, 'Shipped'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Purchase order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=SalesOrderStatus.items(), + default=SalesOrderStatus.PENDING.value, + help_text='Sales order status', verbose_name='Status' + ), ), ] diff --git a/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py b/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py index 23d9b95d86..bc5d52f44d 100644 --- a/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py +++ b/src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py @@ -15,6 +15,10 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='salesorder', name='status', - field=models.PositiveIntegerField(choices=order.status_codes.SalesOrderStatus.items(), default=10, help_text='Purchase order status', verbose_name='Status'), + field=models.PositiveIntegerField( + choices=order.status_codes.SalesOrderStatus.items(), + default=order.status_codes.SalesOrderStatus.PENDING.value, + help_text='Sales order status', verbose_name='Status' + ), ), ] diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index cfa17f4d72..3d2039a84c 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -474,6 +474,7 @@ class PurchaseOrder(TotalPriceMixin, Order): status = models.PositiveIntegerField( default=PurchaseOrderStatus.PENDING.value, choices=PurchaseOrderStatus.items(), + verbose_name=_('Status'), help_text=_('Purchase order status'), ) @@ -608,7 +609,7 @@ class PurchaseOrder(TotalPriceMixin, Order): Order must be currently PENDING. """ - if self.is_pending: + if self.can_issue: self.status = PurchaseOrderStatus.PLACED.value self.issue_date = InvenTree.helpers.current_date() self.save() @@ -641,6 +642,19 @@ class PurchaseOrder(TotalPriceMixin, Order): trigger_event('purchaseorder.completed', id=self.pk) + @transaction.atomic + def issue_order(self): + """Equivalent to 'place_order'.""" + self.place_order() + + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.ON_HOLD.value, + ] + @transaction.atomic def place_order(self): """Attempt to transition to PLACED status.""" @@ -655,6 +669,13 @@ class PurchaseOrder(TotalPriceMixin, Order): self.status, PurchaseOrderStatus.COMPLETE.value, self, self._action_complete ) + @transaction.atomic + def hold_order(self): + """Attempt to transition to ON_HOLD status.""" + return self.handle_transition( + self.status, PurchaseOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def cancel_order(self): """Attempt to transition to CANCELLED status.""" @@ -677,12 +698,9 @@ class PurchaseOrder(TotalPriceMixin, Order): """A PurchaseOrder can only be cancelled under the following circumstances. - Status is PLACED - - Status is PENDING + - Status is PENDING (or ON_HOLD) """ - return self.status in [ - PurchaseOrderStatus.PLACED.value, - PurchaseOrderStatus.PENDING.value, - ] + return self.status in PurchaseOrderStatusGroups.OPEN def _action_cancel(self, *args, **kwargs): """Marks the PurchaseOrder as CANCELLED.""" @@ -700,6 +718,22 @@ class PurchaseOrder(TotalPriceMixin, Order): content=InvenTreeNotificationBodies.OrderCanceled, ) + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.PLACED.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this purchase order as 'on hold'.""" + if self.can_hold: + self.status = PurchaseOrderStatus.ON_HOLD.value + self.save() + + trigger_event('purchaseorder.hold', id=self.pk) + # endregion def pending_line_items(self): @@ -967,7 +1001,7 @@ class SalesOrder(TotalPriceMixin, Order): default=SalesOrderStatus.PENDING.value, choices=SalesOrderStatus.items(), verbose_name=_('Status'), - help_text=_('Purchase order status'), + help_text=_('Sales order status'), ) @property @@ -1073,15 +1107,39 @@ class SalesOrder(TotalPriceMixin, Order): """Deprecated version of 'issue_order'.""" self.issue_order() + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.ON_HOLD.value, + ] + def _action_place(self, *args, **kwargs): """Change this order from 'PENDING' to 'IN_PROGRESS'.""" - if self.status == SalesOrderStatus.PENDING: + if self.can_issue: self.status = SalesOrderStatus.IN_PROGRESS.value self.issue_date = InvenTree.helpers.current_date() self.save() trigger_event('salesorder.issued', id=self.pk) + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.IN_PROGRESS.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this sales order as 'on hold'.""" + if self.can_hold: + self.status = SalesOrderStatus.ON_HOLD.value + self.save() + + trigger_event('salesorder.onhold', id=self.pk) + def _action_complete(self, *args, **kwargs): """Mark this order as "complete.""" user = kwargs.pop('user', None) @@ -1175,6 +1233,13 @@ class SalesOrder(TotalPriceMixin, Order): **kwargs, ) + @transaction.atomic + def hold_order(self): + """Attempt to transition to ON_HOLD status.""" + return self.handle_transition( + self.status, SalesOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def cancel_order(self): """Attempt to transition to CANCELLED status.""" @@ -2132,9 +2197,30 @@ class ReturnOrder(TotalPriceMixin, Order): """Return True if this order is fully received.""" return not self.lines.filter(received_date=None).exists() + @property + def can_hold(self): + """Return True if this order can be placed on hold.""" + return self.status in [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.IN_PROGRESS.value, + ] + + def _action_hold(self, *args, **kwargs): + """Mark this order as 'on hold' (if allowed).""" + if self.can_hold: + self.status = ReturnOrderStatus.ON_HOLD.value + self.save() + + trigger_event('returnorder.hold', id=self.pk) + + @property + def can_cancel(self): + """Return True if this order can be cancelled.""" + return self.status in ReturnOrderStatusGroups.OPEN + def _action_cancel(self, *args, **kwargs): """Cancel this ReturnOrder (if not already cancelled).""" - if self.status != ReturnOrderStatus.CANCELLED: + if self.can_cancel: self.status = ReturnOrderStatus.CANCELLED.value self.save() @@ -2150,7 +2236,7 @@ class ReturnOrder(TotalPriceMixin, Order): def _action_complete(self, *args, **kwargs): """Complete this ReturnOrder (if not already completed).""" - if self.status == ReturnOrderStatus.IN_PROGRESS: + if self.status == ReturnOrderStatus.IN_PROGRESS.value: self.status = ReturnOrderStatus.COMPLETE.value self.complete_date = InvenTree.helpers.current_date() self.save() @@ -2161,15 +2247,30 @@ class ReturnOrder(TotalPriceMixin, Order): """Deprecated version of 'issue_order.""" self.issue_order() + @property + def can_issue(self): + """Return True if this order can be issued.""" + return self.status in [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.ON_HOLD.value, + ] + def _action_place(self, *args, **kwargs): """Issue this ReturnOrder (if currently pending).""" - if self.status == ReturnOrderStatus.PENDING: + if self.can_issue: self.status = ReturnOrderStatus.IN_PROGRESS.value self.issue_date = InvenTree.helpers.current_date() self.save() trigger_event('returnorder.issued', id=self.pk) + @transaction.atomic + def hold_order(self): + """Attempt to tranasition to ON_HOLD status.""" + return self.handle_transition( + self.status, ReturnOrderStatus.ON_HOLD.value, self, self._action_hold + ) + @transaction.atomic def issue_order(self): """Attempt to transition to IN_PROGRESS status.""" diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index f8ed5c6f39..f24b009e38 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -21,7 +21,6 @@ from rest_framework.serializers import ValidationError from sql_util.utils import SubqueryCount import order.models -import part.filters import part.filters as part_filters import part.models as part_models import stock.models @@ -284,14 +283,37 @@ class PurchaseOrderSerializer( ) -class PurchaseOrderCancelSerializer(serializers.Serializer): - """Serializer for cancelling a PurchaseOrder.""" +class OrderAdjustSerializer(serializers.Serializer): + """Generic serializer class for adjusting the status of an order.""" class Meta: - """Metaclass options.""" + """Metaclass options. + + By default, there are no fields required for this serializer type. + """ fields = [] + @property + def order(self): + """Return the order object associated with this serializer. + + Note: It is passed in via the serializer context data. + """ + return self.context['order'] + + +class PurchaseOrderHoldSerializer(OrderAdjustSerializer): + """Serializer for placing a PurchaseOrder on hold.""" + + def save(self): + """Save the serializer to 'hold' the order.""" + self.order.hold_order() + + +class PurchaseOrderCancelSerializer(OrderAdjustSerializer): + """Serializer for cancelling a PurchaseOrder.""" + def get_context_data(self): """Return custom context information about the order.""" self.order = self.context['order'] @@ -300,21 +322,19 @@ class PurchaseOrderCancelSerializer(serializers.Serializer): def save(self): """Save the serializer to 'cancel' the order.""" - order = self.context['order'] - - if not order.can_cancel: + if not self.order.can_cancel: raise ValidationError(_('Order cannot be cancelled')) - order.cancel_order() + self.order.cancel_order() -class PurchaseOrderCompleteSerializer(serializers.Serializer): +class PurchaseOrderCompleteSerializer(OrderAdjustSerializer): """Serializer for completing a purchase order.""" class Meta: """Metaclass options.""" - fields = [] + fields = ['accept_incomplete'] accept_incomplete = serializers.BooleanField( label=_('Accept Incomplete'), @@ -340,22 +360,15 @@ class PurchaseOrderCompleteSerializer(serializers.Serializer): def save(self): """Save the serializer to 'complete' the order.""" - order = self.context['order'] - order.complete_order() + self.order.complete_order() -class PurchaseOrderIssueSerializer(serializers.Serializer): +class PurchaseOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing (sending) a purchase order.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'place' the order.""" - order = self.context['order'] - order.place_order() + self.order.place_order() @register_importer() @@ -402,7 +415,6 @@ class PurchaseOrderLineItemSerializer( def __init__(self, *args, **kwargs): """Initialization routine for the serializer.""" part_detail = kwargs.pop('part_detail', False) - order_detail = kwargs.pop('order_detail', False) super().__init__(*args, **kwargs) @@ -436,6 +448,18 @@ class PurchaseOrderLineItemSerializer( ) ) + queryset = queryset.prefetch_related( + 'order', + 'order__responsible', + 'order__stock_items', + 'part__tags', + 'part__supplier', + 'part__manufacturer_part', + 'part__manufacturer_part__manufacturer', + 'part__part__pricing_data', + 'part__part__tags', + ) + queryset = queryset.annotate( total_price=ExpressionWrapper( F('purchase_price') * F('quantity'), output_field=models.DecimalField() @@ -489,7 +513,7 @@ class PurchaseOrderLineItemSerializer( ) supplier_part_detail = SupplierPartSerializer( - source='part', many=False, read_only=True + source='part', brief=True, many=False, read_only=True ) purchase_price = InvenTreeMoneySerializer(allow_null=True) @@ -898,18 +922,12 @@ class SalesOrderSerializer( ) -class SalesOrderIssueSerializer(serializers.Serializer): +class SalesOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing a SalesOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'issue' the order.""" - order = self.context['order'] - order.issue_order() + self.order.issue_order() class SalesOrderAllocationSerializer(InvenTreeModelSerializer): @@ -1011,8 +1029,6 @@ class SalesOrderLineItemSerializer( 'pk', 'allocated', 'allocations', - 'available_stock', - 'available_variant_stock', 'customer_detail', 'quantity', 'reference', @@ -1027,6 +1043,11 @@ class SalesOrderLineItemSerializer( 'shipped', 'target_date', 'link', + # Annotated fields for part stocking information + 'available_stock', + 'available_variant_stock', + 'building', + 'on_order', ] def __init__(self, *args, **kwargs): @@ -1059,6 +1080,8 @@ class SalesOrderLineItemSerializer( - "overdue" status (boolean field) - "available_quantity" + - "building" + - "on_order" """ queryset = queryset.annotate( overdue=Case( @@ -1074,11 +1097,11 @@ class SalesOrderLineItemSerializer( # Annotate each line with the available stock quantity # To do this, we need to look at the total stock and any allocations queryset = queryset.alias( - total_stock=part.filters.annotate_total_stock(reference='part__'), - allocated_to_sales_orders=part.filters.annotate_sales_order_allocations( + total_stock=part_filters.annotate_total_stock(reference='part__'), + allocated_to_sales_orders=part_filters.annotate_sales_order_allocations( reference='part__' ), - allocated_to_build_orders=part.filters.annotate_build_order_allocations( + allocated_to_build_orders=part_filters.annotate_build_order_allocations( reference='part__' ), ) @@ -1093,19 +1116,19 @@ class SalesOrderLineItemSerializer( ) # Filter for "variant" stock: Variant stock items must be salable and active - variant_stock_query = part.filters.variant_stock_query( + variant_stock_query = part_filters.variant_stock_query( reference='part__' ).filter(part__salable=True, part__active=True) # Also add in available "variant" stock queryset = queryset.alias( - variant_stock_total=part.filters.annotate_variant_quantity( + variant_stock_total=part_filters.annotate_variant_quantity( variant_stock_query, reference='quantity' ), - variant_bo_allocations=part.filters.annotate_variant_quantity( + variant_bo_allocations=part_filters.annotate_variant_quantity( variant_stock_query, reference='sales_order_allocations__quantity' ), - variant_so_allocations=part.filters.annotate_variant_quantity( + variant_so_allocations=part_filters.annotate_variant_quantity( variant_stock_query, reference='allocations__quantity' ), ) @@ -1119,6 +1142,16 @@ class SalesOrderLineItemSerializer( ) ) + # Add information about the quantity of parts currently on order + queryset = queryset.annotate( + on_order=part_filters.annotate_on_order_quantity(reference='part__') + ) + + # Add information about the quantity of parts currently in production + queryset = queryset.annotate( + building=part_filters.annotate_in_production_quantity(reference='part__') + ) + return queryset customer_detail = CompanyBriefSerializer( @@ -1134,6 +1167,8 @@ class SalesOrderLineItemSerializer( overdue = serializers.BooleanField(required=False, read_only=True) available_stock = serializers.FloatField(read_only=True) available_variant_stock = serializers.FloatField(read_only=True) + on_order = serializers.FloatField(label=_('On Order'), read_only=True) + building = serializers.FloatField(label=_('In Production'), read_only=True) quantity = InvenTreeDecimalField() @@ -1313,9 +1348,14 @@ class SalesOrderShipmentAllocationItemSerializer(serializers.Serializer): return data -class SalesOrderCompleteSerializer(serializers.Serializer): +class SalesOrderCompleteSerializer(OrderAdjustSerializer): """DRF serializer for manually marking a sales order as complete.""" + class Meta: + """Serializer metaclass options.""" + + fields = ['accept_incomplete'] + accept_incomplete = serializers.BooleanField( label=_('Accept Incomplete'), help_text=_('Allow order to be closed with incomplete line items'), @@ -1344,10 +1384,7 @@ class SalesOrderCompleteSerializer(serializers.Serializer): def validate(self, data): """Custom validation for the serializer.""" data = super().validate(data) - - order = self.context['order'] - - order.can_complete( + self.order.can_complete( raise_error=True, allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)), ) @@ -1357,17 +1394,24 @@ class SalesOrderCompleteSerializer(serializers.Serializer): def save(self): """Save the serializer to complete the SalesOrder.""" request = self.context['request'] - order = self.context['order'] data = self.validated_data user = getattr(request, 'user', None) - order.ship_order( + self.order.ship_order( user, allow_incomplete_lines=str2bool(data.get('accept_incomplete', False)) ) -class SalesOrderCancelSerializer(serializers.Serializer): +class SalesOrderHoldSerializer(OrderAdjustSerializer): + """Serializer for placing a SalesOrder on hold.""" + + def save(self): + """Save the serializer to place the SalesOrder on hold.""" + self.order.hold_order() + + +class SalesOrderCancelSerializer(OrderAdjustSerializer): """Serializer for marking a SalesOrder as cancelled.""" def get_context_data(self): @@ -1378,9 +1422,7 @@ class SalesOrderCancelSerializer(serializers.Serializer): def save(self): """Save the serializer to cancel the order.""" - order = self.context['order'] - - order.cancel_order() + self.order.cancel_order() class SalesOrderSerialAllocationSerializer(serializers.Serializer): @@ -1657,46 +1699,36 @@ class ReturnOrderSerializer( ) -class ReturnOrderIssueSerializer(serializers.Serializer): +class ReturnOrderHoldSerializer(OrderAdjustSerializer): + """Serializers for holding a ReturnOrder.""" + + def save(self): + """Save the serializer to 'hold' the order.""" + self.order.hold_order() + + +class ReturnOrderIssueSerializer(OrderAdjustSerializer): """Serializer for issuing a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'issue' the order.""" - order = self.context['order'] - order.issue_order() + self.order.issue_order() -class ReturnOrderCancelSerializer(serializers.Serializer): +class ReturnOrderCancelSerializer(OrderAdjustSerializer): """Serializer for cancelling a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'cancel' the order.""" - order = self.context['order'] - order.cancel_order() + self.order.cancel_order() -class ReturnOrderCompleteSerializer(serializers.Serializer): +class ReturnOrderCompleteSerializer(OrderAdjustSerializer): """Serializer for completing a ReturnOrder.""" - class Meta: - """Metaclass options.""" - - fields = [] - def save(self): """Save the serializer to 'complete' the order.""" - order = self.context['order'] - order.complete_order() + self.order.complete_order() class ReturnOrderLineItemReceiveSerializer(serializers.Serializer): diff --git a/src/backend/InvenTree/order/status_codes.py b/src/backend/InvenTree/order/status_codes.py index cec286dc09..bc5df2bca3 100644 --- a/src/backend/InvenTree/order/status_codes.py +++ b/src/backend/InvenTree/order/status_codes.py @@ -11,6 +11,7 @@ class PurchaseOrderStatus(StatusCode): # Order status codes PENDING = 10, _('Pending'), 'secondary' # Order is pending (not yet placed) PLACED = 20, _('Placed'), 'primary' # Order has been placed with supplier + ON_HOLD = 25, _('On Hold'), 'warning' # Order is on hold COMPLETE = 30, _('Complete'), 'success' # Order has been completed CANCELLED = 40, _('Cancelled'), 'danger' # Order was cancelled LOST = 50, _('Lost'), 'warning' # Order was lost @@ -21,7 +22,11 @@ class PurchaseOrderStatusGroups: """Groups for PurchaseOrderStatus codes.""" # Open orders - OPEN = [PurchaseOrderStatus.PENDING.value, PurchaseOrderStatus.PLACED.value] + OPEN = [ + PurchaseOrderStatus.PENDING.value, + PurchaseOrderStatus.ON_HOLD.value, + PurchaseOrderStatus.PLACED.value, + ] # Failed orders FAILED = [ @@ -41,6 +46,7 @@ class SalesOrderStatus(StatusCode): 'primary', ) # Order has been issued, and is in progress SHIPPED = 20, _('Shipped'), 'success' # Order has been shipped to customer + ON_HOLD = 25, _('On Hold'), 'warning' # Order is on hold COMPLETE = 30, _('Complete'), 'success' # Order is complete CANCELLED = 40, _('Cancelled'), 'danger' # Order has been cancelled LOST = 50, _('Lost'), 'warning' # Order was lost @@ -51,7 +57,11 @@ class SalesOrderStatusGroups: """Groups for SalesOrderStatus codes.""" # Open orders - OPEN = [SalesOrderStatus.PENDING.value, SalesOrderStatus.IN_PROGRESS.value] + OPEN = [ + SalesOrderStatus.PENDING.value, + SalesOrderStatus.ON_HOLD.value, + SalesOrderStatus.IN_PROGRESS.value, + ] # Completed orders COMPLETE = [SalesOrderStatus.SHIPPED.value, SalesOrderStatus.COMPLETE.value] @@ -66,6 +76,8 @@ class ReturnOrderStatus(StatusCode): # Items have been received, and are being inspected IN_PROGRESS = 20, _('In Progress'), 'primary' + ON_HOLD = 25, _('On Hold'), 'warning' + COMPLETE = 30, _('Complete'), 'success' CANCELLED = 40, _('Cancelled'), 'danger' @@ -73,7 +85,11 @@ class ReturnOrderStatus(StatusCode): class ReturnOrderStatusGroups: """Groups for ReturnOrderStatus codes.""" - OPEN = [ReturnOrderStatus.PENDING.value, ReturnOrderStatus.IN_PROGRESS.value] + OPEN = [ + ReturnOrderStatus.PENDING.value, + ReturnOrderStatus.ON_HOLD.value, + ReturnOrderStatus.IN_PROGRESS.value, + ] class ReturnOrderLineStatus(StatusCode): diff --git a/src/backend/InvenTree/order/templates/order/order_base.html b/src/backend/InvenTree/order/templates/order/order_base.html index ce9bc02fad..b02aafa19b 100644 --- a/src/backend/InvenTree/order/templates/order/order_base.html +++ b/src/backend/InvenTree/order/templates/order/order_base.html @@ -63,23 +63,28 @@
  • {% trans "Edit order" %}
  • - {% if order.can_cancel %} -
  • - {% trans "Cancel order" %} -
  • - {% endif %} {% if roles.purchase_order.add %}
  • {% trans "Duplicate order" %}
  • {% endif %} + {% if order.can_hold %} +
  • + {% trans "Hold order" %} +
  • + {% endif %} + {% if order.can_cancel %} +
  • + {% trans "Cancel order" %} +
  • + {% endif %}
    -{% if order.is_pending %} +{% if order.can_issue %} -{% elif order.is_open %} +{% elif order.status == PurchaseOrderStatus.PLACED %} @@ -238,7 +243,7 @@ src="{% static 'img/blank_image.png' %}" {% block js_ready %} {{ block.super }} -{% if order.status == PurchaseOrderStatus.PENDING %} +{% if order.status == PurchaseOrderStatus.PENDING or order.status == PurchaseOrderStatus.ON_HOLD %} $("#place-order").click(function() { issuePurchaseOrder( @@ -281,6 +286,7 @@ $("#complete-order").click(function() { ); }); +{% if order.can_cancel %} $("#cancel-order").click(function() { cancelPurchaseOrder( @@ -292,6 +298,21 @@ $("#cancel-order").click(function() { }, ); }); +{% endif %} + +{% if order.can_hold %} +$("#hold-order").click(function() { + + holdOrder( + '{% url "api-po-hold" order.pk %}', + { + onSuccess: function() { + window.location.reload(); + } + } + ); +}); +{% endif %} {% endif %} diff --git a/src/backend/InvenTree/order/templates/order/return_order_base.html b/src/backend/InvenTree/order/templates/order/return_order_base.html index f4590c71eb..494701abf1 100644 --- a/src/backend/InvenTree/order/templates/order/return_order_base.html +++ b/src/backend/InvenTree/order/templates/order/return_order_base.html @@ -74,11 +74,14 @@ src="{% static 'img/blank_image.png' %}" - {% if order.status == ReturnOrderStatus.PENDING %} + {% if order.can_issue %} @@ -211,7 +214,7 @@ src="{% static 'img/blank_image.png' %}" {% if roles.return_order.change %} -{% if order.status == ReturnOrderStatus.PENDING %} +{% if order.can_issue %} $('#issue-order').click(function() { issueReturnOrder({{ order.pk }}, { reload: true, @@ -234,7 +237,7 @@ $('#edit-order').click(function() { }); }); -{% if order.is_open %} +{% if order.can_cancel %} $('#cancel-order').click(function() { cancelReturnOrder( {{ order.pk }}, @@ -244,6 +247,17 @@ $('#cancel-order').click(function() { ); }); {% endif %} + +{% if order.can_hold %} +$("#hold-order").click(function() { + holdOrder( + '{% url "api-ro-hold" order.pk %}', + { + reload: true, + } + ); + }); +{% endif %} {% endif %} {% if report_enabled %} diff --git a/src/backend/InvenTree/order/templates/order/sales_order_base.html b/src/backend/InvenTree/order/templates/order/sales_order_base.html index 2a3e676e95..c8d0179aa1 100644 --- a/src/backend/InvenTree/order/templates/order/sales_order_base.html +++ b/src/backend/InvenTree/order/templates/order/sales_order_base.html @@ -73,13 +73,16 @@ src="{% static 'img/blank_image.png' %}"
    - {% if order.is_pending %} + {% if order.status == SalesOrderStatus.PENDING or order.status == SalesOrderStatus.ON_HOLD %} @@ -280,6 +283,7 @@ $('#issue-order').click(function() { ); }); +{% if order.can_cancel %} $("#cancel-order").click(function() { cancelSalesOrder( @@ -289,6 +293,20 @@ $("#cancel-order").click(function() { } ); }); +{% endif %} + +{% if order.can_hold %} +$('#hold-order').click(function() { + holdOrder( + '{% url "api-so-hold" order.pk %}', + { + onSuccess: function() { + window.location.reload(); + } + } + ); +}); +{% endif %} $("#ship-order").click(function() { shipSalesOrder( diff --git a/src/backend/InvenTree/part/admin.py b/src/backend/InvenTree/part/admin.py index 7ca74d75bc..89a23cefcc 100644 --- a/src/backend/InvenTree/part/admin.py +++ b/src/backend/InvenTree/part/admin.py @@ -401,6 +401,9 @@ class BomItemResource(InvenTreeResource): part_ipn = Field( attribute='sub_part__IPN', column_name=_('Part IPN'), readonly=True ) + part_revision = Field( + attribute='sub_part__revision', column_name=_('Part Revision'), readonly=True + ) part_name = Field( attribute='sub_part__name', column_name=_('Part Name'), readonly=True ) diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index 2d9be8b099..49be598d88 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -43,7 +43,6 @@ from InvenTree.mixins import ( from InvenTree.permissions import RolePermission from InvenTree.serializers import EmptySerializer from order.status_codes import PurchaseOrderStatusGroups, SalesOrderStatusGroups -from part.admin import PartCategoryResource, PartResource from stock.models import StockLocation from . import serializers as part_serializers @@ -245,7 +244,7 @@ class CategoryList(CategoryMixin, DataExportViewMixin, ListCreateAPI): # Use hierarchical ordering by default ordering = ['tree_id', 'lft', 'name'] - search_fields = ['name', 'description'] + search_fields = ['name', 'description', 'pathstring'] class CategoryDetail(CategoryMixin, CustomRetrieveUpdateDestroyAPI): @@ -1196,6 +1195,10 @@ class PartMixin: queryset = part_serializers.PartSerializer.annotate_queryset(queryset) + # Annotate with parameter template data? + if str2bool(self.request.query_params.get('parameters', False)): + queryset = queryset.prefetch_related('parameters', 'parameters__template') + return queryset def get_serializer(self, *args, **kwargs): diff --git a/src/backend/InvenTree/part/bom.py b/src/backend/InvenTree/part/bom.py index 88b67d17e0..d692b66ad9 100644 --- a/src/backend/InvenTree/part/bom.py +++ b/src/backend/InvenTree/part/bom.py @@ -117,6 +117,14 @@ def ExportBom( for bom_item in bom_items: substitutes = BomItemSubstitute.objects.filter(bom_item=bom_item) for s_idx, substitute in enumerate(substitutes): + """Create substitute part IPN column""" + name = f'{_("Substitute IPN")}{s_idx + 1}' + value = substitute.part.IPN + try: + substitute_cols[name].update({col_index: value}) + except KeyError: + substitute_cols[name] = {col_index: value} + """Create substitute part name column""" name = f'{_("Substitute Part")}{s_idx + 1}' value = substitute.part.name diff --git a/src/backend/InvenTree/part/filters.py b/src/backend/InvenTree/part/filters.py index 0b9fafb983..2a35b80714 100644 --- a/src/backend/InvenTree/part/filters.py +++ b/src/backend/InvenTree/part/filters.py @@ -296,15 +296,12 @@ def annotate_default_location(reference=''): rght__gt=OuterRef(f'{reference}rght'), level__lte=OuterRef(f'{reference}level'), parent__isnull=False, - ) + default_location__isnull=False, + ).order_by('-level') return Coalesce( F(f'{reference}default_location'), - Subquery( - subquery.order_by('-level') - .filter(default_location__isnull=False) - .values('default_location') - ), + Subquery(subquery.values('default_location')[:1]), Value(None), output_field=IntegerField(), ) diff --git a/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py b/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py new file mode 100644 index 0000000000..0e9e148fb2 --- /dev/null +++ b/src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py @@ -0,0 +1,29 @@ +# Generated by Django 4.2.11 on 2024-07-20 22:30 + +import common.icons +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0126_part_revision_of'), + ] + + operations = [ + migrations.SeparateDatabaseAndState( + database_operations=[], + state_operations=[ + migrations.RenameField( + model_name='partcategory', + old_name='icon', + new_name='_icon', + ), + migrations.AlterField( + model_name='partcategory', + name='_icon', + field=models.CharField(blank=True, db_column='icon', help_text='Icon (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + ], + ), + ] diff --git a/src/backend/InvenTree/part/models.py b/src/backend/InvenTree/part/models.py index f759241aa7..b84b24f70e 100644 --- a/src/backend/InvenTree/part/models.py +++ b/src/backend/InvenTree/part/models.py @@ -50,8 +50,8 @@ import users.models from build import models as BuildModels from build.status_codes import BuildStatusGroups from common.currency import currency_code_default -from common.models import InvenTreeSetting -from common.settings import get_global_setting, set_global_setting +from common.icons import validate_icon +from common.settings import get_global_setting from company.models import SupplierPart from InvenTree import helpers, validators from InvenTree.fields import InvenTreeURLField @@ -80,6 +80,8 @@ class PartCategory(InvenTree.models.InvenTreeTree): ITEM_PARENT_KEY = 'category' + EXTRA_PATH_FIELDS = ['icon'] + class Meta: """Metaclass defines extra model properties.""" @@ -123,13 +125,37 @@ class PartCategory(InvenTree.models.InvenTreeTree): help_text=_('Default keywords for parts in this category'), ) - icon = models.CharField( + _icon = models.CharField( blank=True, max_length=100, verbose_name=_('Icon'), help_text=_('Icon (optional)'), + validators=[validate_icon], + db_column='icon', ) + @property + def icon(self): + """Return the icon associated with this PartCategory or the default icon.""" + if self._icon: + return self._icon + + if default_icon := get_global_setting('PART_CATEGORY_DEFAULT_ICON', cache=True): + return default_icon + + return '' + + @icon.setter + def icon(self, value): + """Setter for icon field.""" + default_icon = get_global_setting('PART_CATEGORY_DEFAULT_ICON', cache=True) + + # if icon is not defined previously and new value is default icon, do not save it + if not self._icon and value == default_icon: + return + + self._icon = value + @staticmethod def get_api_url(): """Return the API url associated with the PartCategory model.""" diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index a87453348f..66307ea89d 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -27,7 +27,7 @@ import company.models import InvenTree.helpers import InvenTree.serializers import InvenTree.status -import part.filters +import part.filters as part_filters import part.helpers as part_helpers import part.stocktake import part.tasks @@ -107,12 +107,12 @@ class CategorySerializer( """Annotate extra information to the queryset.""" # Annotate the number of 'parts' which exist in each category (including subcategories!) queryset = queryset.annotate( - part_count=part.filters.annotate_category_parts(), - subcategories=part.filters.annotate_sub_categories(), + part_count=part_filters.annotate_category_parts(), + subcategories=part_filters.annotate_sub_categories(), ) queryset = queryset.annotate( - parent_default_location=part.filters.annotate_default_location('parent__') + parent_default_location=part_filters.annotate_default_location('parent__') ) return queryset @@ -139,6 +139,10 @@ class CategorySerializer( child=serializers.DictField(), source='get_path', read_only=True ) + icon = serializers.CharField( + required=False, allow_blank=True, help_text=_('Icon (optional)'), max_length=100 + ) + parent_default_location = serializers.IntegerField(read_only=True) @@ -153,10 +157,14 @@ class CategoryTree(InvenTree.serializers.InvenTreeModelSerializer): subcategories = serializers.IntegerField(label=_('Subcategories'), read_only=True) + icon = serializers.CharField( + required=False, allow_blank=True, help_text=_('Icon (optional)'), max_length=100 + ) + @staticmethod def annotate_queryset(queryset): """Annotate the queryset with the number of subcategories.""" - return queryset.annotate(subcategories=part.filters.annotate_sub_categories()) + return queryset.annotate(subcategories=part_filters.annotate_sub_categories()) @register_importer() @@ -773,10 +781,10 @@ class PartSerializer( queryset = queryset.annotate(stock_item_count=SubqueryCount('stock_items')) # Annotate with the total variant stock quantity - variant_query = part.filters.variant_stock_query() + variant_query = part_filters.variant_stock_query() queryset = queryset.annotate( - variant_stock=part.filters.annotate_variant_quantity( + variant_stock=part_filters.annotate_variant_quantity( variant_query, reference='quantity' ) ) @@ -806,10 +814,10 @@ class PartSerializer( # TODO: Note that BomItemSerializer and BuildLineSerializer have very similar code queryset = queryset.annotate( - ordering=part.filters.annotate_on_order_quantity(), - in_stock=part.filters.annotate_total_stock(), - allocated_to_sales_orders=part.filters.annotate_sales_order_allocations(), - allocated_to_build_orders=part.filters.annotate_build_order_allocations(), + ordering=part_filters.annotate_on_order_quantity(), + in_stock=part_filters.annotate_total_stock(), + allocated_to_sales_orders=part_filters.annotate_sales_order_allocations(), + allocated_to_build_orders=part_filters.annotate_build_order_allocations(), ) # Annotate the queryset with the 'total_in_stock' quantity @@ -821,7 +829,7 @@ class PartSerializer( ) queryset = queryset.annotate( - external_stock=part.filters.annotate_total_stock( + external_stock=part_filters.annotate_total_stock( filter=Q(location__external=True) ) ) @@ -839,12 +847,12 @@ class PartSerializer( # Annotate with the total 'required for builds' quantity queryset = queryset.annotate( - required_for_build_orders=part.filters.annotate_build_order_requirements(), - required_for_sales_orders=part.filters.annotate_sales_order_requirements(), + required_for_build_orders=part_filters.annotate_build_order_requirements(), + required_for_sales_orders=part_filters.annotate_sales_order_requirements(), ) queryset = queryset.annotate( - category_default_location=part.filters.annotate_default_location( + category_default_location=part_filters.annotate_default_location( 'category__' ) ) @@ -1482,6 +1490,8 @@ class BomItemSerializer( import_exclude_fields = ['validated', 'substitutes'] + export_only_fields = ['sub_part_name', 'sub_part_ipn', 'sub_part_description'] + class Meta: """Metaclass defining serializer fields.""" @@ -1489,6 +1499,10 @@ class BomItemSerializer( fields = [ 'part', 'sub_part', + # Extra fields only for export + 'sub_part_name', + 'sub_part_ipn', + 'sub_part_description', 'reference', 'quantity', 'overage', @@ -1555,15 +1569,30 @@ class BomItemSerializer( return quantity part = serializers.PrimaryKeyRelatedField( - queryset=Part.objects.filter(assembly=True) + queryset=Part.objects.filter(assembly=True), + label=_('Assembly'), + help_text=_('Select the parent assembly'), ) substitutes = BomItemSubstituteSerializer(many=True, read_only=True) part_detail = PartBriefSerializer(source='part', many=False, read_only=True) + # Extra fields only for export + sub_part_name = serializers.CharField( + source='sub_part.name', read_only=True, label=_('Component Name') + ) + sub_part_ipn = serializers.CharField( + source='sub_part.IPN', read_only=True, label=_('Component IPN') + ) + sub_part_description = serializers.CharField( + source='sub_part.description', read_only=True, label=_('Component Description') + ) + sub_part = serializers.PrimaryKeyRelatedField( - queryset=Part.objects.filter(component=True) + queryset=Part.objects.filter(component=True), + label=_('Component'), + help_text=_('Select the component part'), ) sub_part_detail = PartBriefSerializer(source='sub_part', many=False, read_only=True) @@ -1655,30 +1684,23 @@ class BomItemSerializer( # Annotate with the total "on order" amount for the sub-part queryset = queryset.annotate( - on_order=part.filters.annotate_on_order_quantity(ref) + on_order=part_filters.annotate_on_order_quantity(ref) ) # Annotate with the total "building" amount for the sub-part queryset = queryset.annotate( - building=Coalesce( - SubquerySum( - 'sub_part__builds__quantity', - filter=Q(status__in=BuildStatusGroups.ACTIVE_CODES), - ), - Decimal(0), - output_field=models.DecimalField(), - ) + building=part_filters.annotate_in_production_quantity(ref) ) # Calculate "total stock" for the referenced sub_part # Calculate the "build_order_allocations" for the sub_part # Note that these fields are only aliased, not annotated queryset = queryset.alias( - total_stock=part.filters.annotate_total_stock(reference=ref), - allocated_to_sales_orders=part.filters.annotate_sales_order_allocations( + total_stock=part_filters.annotate_total_stock(reference=ref), + allocated_to_sales_orders=part_filters.annotate_sales_order_allocations( reference=ref ), - allocated_to_build_orders=part.filters.annotate_build_order_allocations( + allocated_to_build_orders=part_filters.annotate_build_order_allocations( reference=ref ), ) @@ -1695,7 +1717,7 @@ class BomItemSerializer( # Calculate 'external_stock' queryset = queryset.annotate( - external_stock=part.filters.annotate_total_stock( + external_stock=part_filters.annotate_total_stock( reference=ref, filter=Q(location__external=True) ) ) @@ -1704,11 +1726,11 @@ class BomItemSerializer( # Extract similar information for any 'substitute' parts queryset = queryset.alias( - substitute_stock=part.filters.annotate_total_stock(reference=ref), - substitute_build_allocations=part.filters.annotate_build_order_allocations( + substitute_stock=part_filters.annotate_total_stock(reference=ref), + substitute_build_allocations=part_filters.annotate_build_order_allocations( reference=ref ), - substitute_sales_allocations=part.filters.annotate_sales_order_allocations( + substitute_sales_allocations=part_filters.annotate_sales_order_allocations( reference=ref ), ) @@ -1724,16 +1746,16 @@ class BomItemSerializer( ) # Annotate the queryset with 'available variant stock' information - variant_stock_query = part.filters.variant_stock_query(reference='sub_part__') + variant_stock_query = part_filters.variant_stock_query(reference='sub_part__') queryset = queryset.alias( - variant_stock_total=part.filters.annotate_variant_quantity( + variant_stock_total=part_filters.annotate_variant_quantity( variant_stock_query, reference='quantity' ), - variant_bo_allocations=part.filters.annotate_variant_quantity( + variant_bo_allocations=part_filters.annotate_variant_quantity( variant_stock_query, reference='sales_order_allocations__quantity' ), - variant_so_allocations=part.filters.annotate_variant_quantity( + variant_so_allocations=part_filters.annotate_variant_quantity( variant_stock_query, reference='allocations__quantity' ), ) diff --git a/src/backend/InvenTree/part/templates/part/category.html b/src/backend/InvenTree/part/templates/part/category.html index 5671ca44c5..4bcf6b82ad 100644 --- a/src/backend/InvenTree/part/templates/part/category.html +++ b/src/backend/InvenTree/part/templates/part/category.html @@ -14,10 +14,7 @@ {% block heading %} {% if category %} {% trans "Part Category" %}: -{% settings_value "PART_CATEGORY_DEFAULT_ICON" as default_icon %} -{% if category.icon or default_icon %} - -{% endif %} + {{ category.name }} {% else %} {% trans "Parts" %} @@ -234,6 +231,10 @@ {% block js_ready %} {{ block.super }} + loadApiIconPacks().then(() => { + $('#category-icon').addClass(getApiIconClass('{{ category.icon }}')); + }); + {% settings_value "STOCKTAKE_ENABLE" as stocktake_enable %} {% if stocktake_enable and roles.stocktake.add %} $('#category-stocktake').click(function() { @@ -242,13 +243,11 @@ {% if category %}value: {{ category.pk }},{% endif %} tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, @@ -308,7 +307,6 @@ return node; }, - defaultIcon: global_settings.PART_CATEGORY_DEFAULT_ICON, }); onPanelLoad('subcategories', function() { diff --git a/src/backend/InvenTree/part/templates/part/detail.html b/src/backend/InvenTree/part/templates/part/detail.html index 71a0efd366..eaec60b375 100644 --- a/src/backend/InvenTree/part/templates/part/detail.html +++ b/src/backend/InvenTree/part/templates/part/detail.html @@ -100,6 +100,22 @@
    +
    +
    +
    +

    {% trans "Part Test Statistics" %}

    + {% include "spacer.html" %} +
    +
    +
    +
    + {% include "filter_list.html" with id="partteststatistics" %} +
    + + {% include "test_statistics_table.html" with prefix="part-" %} +
    +
    +
    @@ -441,7 +457,6 @@ location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: { @@ -752,6 +767,9 @@ }); }); }); + onPanelLoad("test-statistics", function() { + prepareTestStatisticsTable('part', '{% url "api-test-statistics-by-part" part.pk %}') + }); onPanelLoad("part-stock", function() { $('#new-stock-item').click(function () { diff --git a/src/backend/InvenTree/part/templates/part/part_sidebar.html b/src/backend/InvenTree/part/templates/part/part_sidebar.html index 368110d729..8579cbd5cc 100644 --- a/src/backend/InvenTree/part/templates/part/part_sidebar.html +++ b/src/backend/InvenTree/part/templates/part/part_sidebar.html @@ -53,6 +53,8 @@ {% if part.trackable %} {% trans "Test Templates" as text %} {% include "sidebar_item.html" with label="test-templates" text=text icon="fa-vial" %} +{% trans "Test Statistics" as text %} +{% include "sidebar_item.html" with label="test-statistics" text=text icon="fa-chart-line" %} {% endif %} {% if show_related %} {% trans "Related Parts" as text %} diff --git a/src/backend/InvenTree/part/test_api.py b/src/backend/InvenTree/part/test_api.py index 3d4e4909d9..85af447556 100644 --- a/src/backend/InvenTree/part/test_api.py +++ b/src/backend/InvenTree/part/test_api.py @@ -505,6 +505,82 @@ class PartCategoryAPITest(InvenTreeAPITestCase): self.assertEqual(item['parent'], parent) self.assertEqual(item['subcategories'], subcategories) + def test_part_category_default_location(self): + """Test default location propagation through location trees.""" + """Making a tree structure like this: + main + loc 2 + sub1 + sub2 + loc 3 + sub3 + loc 4 + sub4 + sub5 + Expected behaviour: + main parent loc: Out of test scope. Parent category data not controlled by the test + sub1 parent loc: loc 2 + sub2 parent loc: loc 2 + sub3 parent loc: loc 3 + sub4 parent loc: loc 4 + sub5 parent loc: loc 3 + """ + main = PartCategory.objects.create( + name='main', + parent=PartCategory.objects.first(), + default_location=StockLocation.objects.get(id=2), + ) + sub1 = PartCategory.objects.create(name='sub1', parent=main) + sub2 = PartCategory.objects.create( + name='sub2', parent=sub1, default_location=StockLocation.objects.get(id=3) + ) + sub3 = PartCategory.objects.create( + name='sub3', parent=sub2, default_location=StockLocation.objects.get(id=4) + ) + sub4 = PartCategory.objects.create(name='sub4', parent=sub3) + sub5 = PartCategory.objects.create(name='sub5', parent=sub2) + part = Part.objects.create(name='test', category=sub4) + PartCategory.objects.rebuild() + + # This query will trigger an internal server error if annotation results are not limited to 1 + url = reverse('api-part-list') + response = self.get(url, expected_code=200) + + # sub1, expect main to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub1.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], main.default_location.pk + ) + + # sub2, expect main to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub2.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], main.default_location.pk + ) + + # sub3, expect sub2 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub3.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub2.default_location.pk + ) + + # sub4, expect sub3 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub4.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub3.default_location.pk + ) + + # sub5, expect sub2 to be propagated + url = reverse('api-part-category-detail', kwargs={'pk': sub5.pk}) + response = self.get(url, expected_code=200) + self.assertEqual( + response.data['parent_default_location'], sub2.default_location.pk + ) + class PartOptionsAPITest(InvenTreeAPITestCase): """Tests for the various OPTIONS endpoints in the /part/ API. diff --git a/src/backend/InvenTree/part/test_bom_export.py b/src/backend/InvenTree/part/test_bom_export.py index 6913c43944..7702e94210 100644 --- a/src/backend/InvenTree/part/test_bom_export.py +++ b/src/backend/InvenTree/part/test_bom_export.py @@ -111,6 +111,7 @@ class BomExportTest(InvenTreeTestCase): 'Parent Name', 'Part ID', 'Part IPN', + 'Part Revision', 'Part Name', 'Description', 'Assembly', diff --git a/src/backend/InvenTree/part/test_category.py b/src/backend/InvenTree/part/test_category.py index 34308bf285..94465d075d 100644 --- a/src/backend/InvenTree/part/test_category.py +++ b/src/backend/InvenTree/part/test_category.py @@ -4,6 +4,8 @@ from django.conf import settings from django.core.exceptions import ValidationError from django.test import TestCase +from common.models import InvenTreeSetting + from .models import Part, PartCategory, PartParameter, PartParameterTemplate @@ -412,3 +414,29 @@ class CategoryTest(TestCase): # should log an exception with self.assertRaises(ValidationError): B3.delete() + + def test_icon(self): + """Test the category icon.""" + # No default icon set + cat = PartCategory.objects.create(name='Test Category') + self.assertEqual(cat.icon, '') + + # Set a default icon + InvenTreeSetting.set_setting('PART_CATEGORY_DEFAULT_ICON', 'ti:package:outline') + self.assertEqual(cat.icon, 'ti:package:outline') + + # Set custom icon to default icon and assert that it does not get written to the database + cat.icon = 'ti:package:outline' + cat.save() + self.assertEqual(cat._icon, '') + + # Set a different custom icon and assert that it takes precedence + cat.icon = 'ti:tag:outline' + cat.save() + self.assertEqual(cat.icon, 'ti:tag:outline') + InvenTreeSetting.set_setting('PART_CATEGORY_DEFAULT_ICON', '') + + # Test that the icon can be set to None again + cat.icon = '' + cat.save() + self.assertEqual(cat.icon, '') diff --git a/src/backend/InvenTree/plugin/api.py b/src/backend/InvenTree/plugin/api.py index 2c5d3cc864..061c35bb55 100644 --- a/src/backend/InvenTree/plugin/api.py +++ b/src/backend/InvenTree/plugin/api.py @@ -414,6 +414,13 @@ class RegistryStatusView(APIView): return Response(result) +class PluginMetadataView(MetadataView): + """Metadata API endpoint for the PluginConfig model.""" + + lookup_field = 'key' + lookup_url_kwarg = 'plugin' + + plugin_api_urls = [ path('action/', ActionPluginView.as_view(), name='api-action-plugin'), path('barcode/', include(barcode_api_urls)), @@ -438,7 +445,7 @@ plugin_api_urls = [ ) ]), ), - # Lookup for individual plugins (based on 'key', not 'pk') + # Lookup for individual plugins (based on 'plugin', not 'pk') path( '/', include([ @@ -459,7 +466,7 @@ plugin_api_urls = [ ), path( 'metadata/', - MetadataView.as_view(), + PluginMetadataView.as_view(), {'model': PluginConfig, 'lookup_field': 'key'}, name='api-plugin-metadata', ), diff --git a/src/backend/InvenTree/plugin/base/icons/mixins.py b/src/backend/InvenTree/plugin/base/icons/mixins.py new file mode 100644 index 0000000000..a103e93c04 --- /dev/null +++ b/src/backend/InvenTree/plugin/base/icons/mixins.py @@ -0,0 +1,34 @@ +"""Plugin mixin classes for icon pack plugin.""" + +import logging + +from common.icons import IconPack, reload_icon_packs +from plugin.helpers import MixinNotImplementedError + +logger = logging.getLogger('inventree') + + +class IconPackMixin: + """Mixin that add custom icon packs.""" + + class MixinMeta: + """Meta options for this mixin.""" + + MIXIN_NAME = 'icon_pack' + + def __init__(self): + """Register mixin.""" + super().__init__() + self.add_mixin('icon_pack', True, __class__) + + @classmethod + def _activate_mixin(cls, registry, plugins, *args, **kwargs): + """Activate icon pack plugins.""" + logger.debug('Reloading icon packs') + reload_icon_packs() + + def icon_packs(self) -> list[IconPack]: + """Return a list of custom icon packs.""" + raise MixinNotImplementedError( + f"{__class__} is missing the 'icon_packs' method" + ) diff --git a/src/backend/InvenTree/plugin/mixins/__init__.py b/src/backend/InvenTree/plugin/mixins/__init__.py index 369711d8a5..dff24a216d 100644 --- a/src/backend/InvenTree/plugin/mixins/__init__.py +++ b/src/backend/InvenTree/plugin/mixins/__init__.py @@ -4,6 +4,7 @@ from common.notifications import BulkNotificationMethod, SingleNotificationMetho from plugin.base.action.mixins import ActionMixin from plugin.base.barcodes.mixins import BarcodeMixin, SupplierBarcodeMixin from plugin.base.event.mixins import EventMixin +from plugin.base.icons.mixins import IconPackMixin from plugin.base.integration.APICallMixin import APICallMixin from plugin.base.integration.AppMixin import AppMixin from plugin.base.integration.CurrencyExchangeMixin import CurrencyExchangeMixin @@ -22,6 +23,7 @@ __all__ = [ 'AppMixin', 'CurrencyExchangeMixin', 'EventMixin', + 'IconPackMixin', 'LabelPrintingMixin', 'NavigationMixin', 'ReportMixin', diff --git a/src/backend/InvenTree/plugin/samples/icons/__init__.py b/src/backend/InvenTree/plugin/samples/icons/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/backend/InvenTree/plugin/samples/icons/icon_sample.py b/src/backend/InvenTree/plugin/samples/icons/icon_sample.py new file mode 100644 index 0000000000..795f147ebf --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/icons/icon_sample.py @@ -0,0 +1,39 @@ +"""Sample icon pack plugin to add custom icons.""" + +from django.templatetags.static import static + +from common.icons import IconPack +from plugin.base.icons.mixins import IconPackMixin +from plugin.plugin import InvenTreePlugin + + +class SampleIconPlugin(IconPackMixin, InvenTreePlugin): + """Example plugin to add custom icons.""" + + NAME = 'SampleIconPackPlugin' + SLUG = 'sampleicons' + TITLE = 'My sample icon pack plugin' + + VERSION = '0.0.1' + + def icon_packs(self): + """Return a list of custom icon packs.""" + return [ + IconPack( + name='My Custom Icons', + prefix='my', + fonts={ + 'woff2': static('fontawesome/webfonts/fa-regular-400.woff2'), + 'woff': static('fontawesome/webfonts/fa-regular-400.woff'), + 'truetype': static('fontawesome/webfonts/fa-regular-400.ttf'), + }, + icons={ + 'my-icon': { + 'name': 'My Icon', + 'category': '', + 'tags': ['my', 'icon'], + 'variants': {'filled': 'f0a5', 'cool': 'f073'}, + } + }, + ) + ] diff --git a/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py b/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py new file mode 100644 index 0000000000..fa1eef5af8 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/icons/test_icon_sample.py @@ -0,0 +1,52 @@ +"""Unit tests for icon pack sample plugins.""" + +from django.urls import reverse + +from InvenTree.unit_test import InvenTreeAPITestCase +from plugin import InvenTreePlugin, registry +from plugin.helpers import MixinNotImplementedError +from plugin.mixins import IconPackMixin + + +class SampleIconPackPluginTests(InvenTreeAPITestCase): + """Tests for SampleIconPackPlugin.""" + + def test_get_icons_api(self): + """Check get icons api.""" + # Activate plugin + config = registry.get_plugin('sampleicons').plugin_config() + config.active = True + config.save() + + response = self.get(reverse('api-icon-list'), expected_code=200) + self.assertEqual(len(response.data), 2) + + for icon_pack in response.data: + if icon_pack['prefix'] == 'my': + break + else: + self.fail('My icon pack not found') + + self.assertEqual(icon_pack['prefix'], 'my') + self.assertEqual(icon_pack['name'], 'My Custom Icons') + for font_format in ['woff2', 'woff', 'truetype']: + self.assertIn(font_format, icon_pack['fonts']) + + self.assertEqual(len(icon_pack['icons']), 1) + self.assertEqual(icon_pack['icons']['my-icon']['name'], 'My Icon') + self.assertEqual(icon_pack['icons']['my-icon']['category'], '') + self.assertEqual(icon_pack['icons']['my-icon']['tags'], ['my', 'icon']) + self.assertEqual( + icon_pack['icons']['my-icon']['variants'], + {'filled': 'f0a5', 'cool': 'f073'}, + ) + + def test_mixin(self): + """Test that MixinNotImplementedError is raised.""" + + class Wrong(IconPackMixin, InvenTreePlugin): + pass + + with self.assertRaises(MixinNotImplementedError): + plugin = Wrong() + plugin.icon_packs() diff --git a/src/backend/InvenTree/plugin/staticfiles.py b/src/backend/InvenTree/plugin/staticfiles.py index c930ff497b..6e08051fc4 100644 --- a/src/backend/InvenTree/plugin/staticfiles.py +++ b/src/backend/InvenTree/plugin/staticfiles.py @@ -1,7 +1,6 @@ """Static files management for InvenTree plugins.""" import logging -from pathlib import Path from django.contrib.staticfiles.storage import staticfiles_storage @@ -23,12 +22,15 @@ def clear_static_dir(path, recursive=True): dirs, files = staticfiles_storage.listdir(path) for f in files: - staticfiles_storage.delete(f'{path}/{f}') + staticfiles_storage.delete(f'{path}{f}') if recursive: for d in dirs: - clear_static_dir(f'{path}/{d}', recursive=True) - staticfiles_storage.delete(d) + clear_static_dir(f'{path}{d}/', recursive=True) + staticfiles_storage.delete(f'{path}{d}') + + # Finally, delete the directory itself to remove orphan folders when uninstalling a plugin + staticfiles_storage.delete(path) def collect_plugins_static_files(): diff --git a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py index 38abaa650e..c7d15e95a8 100644 --- a/src/backend/InvenTree/plugin/templatetags/plugin_extras.py +++ b/src/backend/InvenTree/plugin/templatetags/plugin_extras.py @@ -2,6 +2,7 @@ from django import template from django.conf import settings as djangosettings +from django.templatetags.static import static from django.urls import reverse from common.notifications import storage @@ -96,3 +97,27 @@ def notification_list(context, *args, **kwargs): } for a in storage.liste ] + + +@register.simple_tag(takes_context=True) +def plugin_static(context, file: str, **kwargs): + """Return the URL for a static file within a plugin. + + Arguments: + file: The path to the file within the plugin static directory + + Keyword Arguments: + plugin: The plugin slug (optional, will be inferred from the context if not provided) + + """ + plugin = context.get('plugin', None) + + if plugin: + plugin = plugin.slug + else: + plugin = kwargs.get('plugin', None) + + if not plugin: + return file + + return static(f'plugins/{plugin}/{file}') diff --git a/src/backend/InvenTree/plugin/test_api.py b/src/backend/InvenTree/plugin/test_api.py index bdef4481e3..d5cd8a1a4a 100644 --- a/src/backend/InvenTree/plugin/test_api.py +++ b/src/backend/InvenTree/plugin/test_api.py @@ -233,7 +233,7 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): # Activate the 'sample' plugin via the API cfg = PluginConfig.objects.filter(key='sample').first() - assert cfg is not None + self.assertIsNotNone(cfg) url = reverse('api-plugin-detail-activate', kwargs={'plugin': cfg.key}) self.client.patch(url, {}, expected_code=200) @@ -292,3 +292,14 @@ class PluginDetailAPITest(PluginMixin, InvenTreeAPITestCase): ) self.assertEqual(response.data['value'], '456') + + def test_plugin_metadata(self): + """Test metadata endpoint for plugin.""" + self.user.is_superuser = True + self.user.save() + + cfg = PluginConfig.objects.filter(key='sample').first() + self.assertIsNotNone(cfg) + + url = reverse('api-plugin-metadata', kwargs={'plugin': cfg.key}) + self.get(url, expected_code=200) diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py index 2f04e5464c..39f664b870 100644 --- a/src/backend/InvenTree/report/templatetags/report.py +++ b/src/backend/InvenTree/report/templatetags/report.py @@ -7,11 +7,13 @@ from decimal import Decimal from django import template from django.conf import settings +from django.core.exceptions import ValidationError from django.utils.safestring import SafeString, mark_safe from django.utils.translation import gettext_lazy as _ from PIL import Image +import common.icons import InvenTree.helpers import InvenTree.helpers_model import report.helpers @@ -473,3 +475,61 @@ def format_date(date, timezone=None, format=None): return date.strftime(format) else: return date.isoformat() + + +@register.simple_tag() +def icon(name, **kwargs): + """Render an icon from the icon packs. + + Arguments: + name: The name of the icon to render + + Keyword Arguments: + class: Optional class name(s) to apply to the icon element + """ + if not name: + return '' + + try: + pack, icon, variant = common.icons.validate_icon(name) + except ValidationError: + return '' + + unicode = chr(int(icon['variants'][variant], 16)) + return mark_safe( + f'{unicode}' + ) + + +@register.simple_tag() +def include_icon_fonts(): + """Return the CSS font-face rule for the icon fonts used on the current page (or all).""" + fonts = [] + + for font in common.icons.get_icon_packs().values(): + # generate the font src string (prefer ttf over woff, woff2 is not supported by weasyprint) + if 'truetype' in font.fonts: + font_format, url = 'truetype', font.fonts['truetype'] + elif 'woff' in font.fonts: + font_format, url = 'woff', font.fonts['woff'] + + fonts.append(f""" +@font-face {'{'} + font-family: 'inventree-icon-font-{font.prefix}'; + src: url('{InvenTree.helpers_model.construct_absolute_url(url)}') format('{font_format}'); +{'}'}\n""") + + icon_class = f""" +.icon {'{'} + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better font rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +{'}'} + """ + + return mark_safe(icon_class + '\n'.join(fonts)) diff --git a/src/backend/InvenTree/report/tests.py b/src/backend/InvenTree/report/tests.py index b5ac753fd9..68120a01a2 100644 --- a/src/backend/InvenTree/report/tests.py +++ b/src/backend/InvenTree/report/tests.py @@ -186,6 +186,31 @@ class ReportTagTest(TestCase): result = report_tags.format_datetime(time, tz, fmt) self.assertEqual(result, expected) + def test_icon(self): + """Test the icon template tag.""" + for icon in [None, '', 'not:the-correct-format', 'any-non-existent-icon']: + self.assertEqual(report_tags.icon(icon), '') + + self.assertEqual( + report_tags.icon('ti:package:outline'), + f'{chr(int("eaff", 16))}', + ) + self.assertEqual( + report_tags.icon( + 'ti:package:outline', **{'class': 'my-custom-class my-seconds-class'} + ), + f'{chr(int("eaff", 16))}', + ) + + def test_include_icon_fonts(self): + """Test the include_icon_fonts template tag.""" + style = report_tags.include_icon_fonts() + + self.assertIn('@font-face {', style) + self.assertIn("font-family: 'inventree-icon-font-ti';", style) + self.assertIn('tabler-icons/tabler-icons.ttf', style) + self.assertIn('.icon {', style) + class BarcodeTagTest(TestCase): """Unit tests for the barcode template tags.""" diff --git a/src/backend/InvenTree/script/update_icons.py b/src/backend/InvenTree/script/update_icons.py new file mode 100644 index 0000000000..1d0dfb2a57 --- /dev/null +++ b/src/backend/InvenTree/script/update_icons.py @@ -0,0 +1,67 @@ +"""This script updates the vendored tabler icons package.""" + +import json +import os +import shutil +import tempfile + +if __name__ == '__main__': + MY_DIR = os.path.dirname(os.path.realpath(__file__)) + STATIC_FOLDER = os.path.abspath( + os.path.join(MY_DIR, '..', 'InvenTree', 'static', 'tabler-icons') + ) + TMP_FOLDER = os.path.join(tempfile.gettempdir(), 'tabler-icons') + + if not os.path.exists(TMP_FOLDER): + os.mkdir(TMP_FOLDER) + + if not os.path.exists(STATIC_FOLDER): + os.mkdir(STATIC_FOLDER) + + print('Downloading tabler icons...') + os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont') + + print(f'Copying tabler icons to {STATIC_FOLDER}...') + + for font in ['tabler-icons.woff', 'tabler-icons.woff2', 'tabler-icons.ttf']: + shutil.copyfile( + os.path.join( + TMP_FOLDER, + 'node_modules', + '@tabler', + 'icons-webfont', + 'dist', + 'fonts', + font, + ), + os.path.join(STATIC_FOLDER, font), + ) + + # Copy license + shutil.copyfile( + os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons-webfont', 'LICENSE'), + os.path.join(STATIC_FOLDER, 'LICENSE'), + ) + + print('Generating icon list...') + with open( + os.path.join(TMP_FOLDER, 'node_modules', '@tabler', 'icons', 'icons.json'), 'r' + ) as f: + icons = json.load(f) + + res = {} + for icon in icons.values(): + res[icon['name']] = { + 'name': icon['name'], + 'category': icon['category'], + 'tags': icon['tags'], + 'variants': { + name: style['unicode'] for name, style in icon['styles'].items() + }, + } + + with open(os.path.join(STATIC_FOLDER, 'icons.json'), 'w') as f: + json.dump(res, f, separators=(',', ':')) + + print('Cleaning up...') + shutil.rmtree(TMP_FOLDER) diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 4ea5be3117..13aea93e63 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -13,7 +13,7 @@ from django.utils.translation import gettext_lazy as _ from django_filters import rest_framework as rest_filters from drf_spectacular.types import OpenApiTypes -from drf_spectacular.utils import extend_schema_field +from drf_spectacular.utils import extend_schema, extend_schema_field from rest_framework import permissions, status from rest_framework.generics import GenericAPIView from rest_framework.response import Response @@ -418,7 +418,7 @@ class StockLocationList(DataExportViewMixin, ListCreateAPI): filter_backends = SEARCH_ORDER_FILTER - search_fields = ['name', 'description', 'tags__name', 'tags__slug'] + search_fields = ['name', 'description', 'pathstring', 'tags__name', 'tags__slug'] ordering_fields = ['name', 'pathstring', 'items', 'level', 'tree_id', 'lft'] @@ -1288,6 +1288,54 @@ class StockItemTestResultFilter(rest_filters.FilterSet): return queryset.filter(template__key=key) +class TestStatisticsFilter(rest_filters.FilterSet): + """API filter for the filtering the test results belonging to a specific build.""" + + class Meta: + """Metaclass options.""" + + model = StockItemTestResult + fields = [] + + # Created date filters + finished_before = InvenTreeDateFilter( + label='Finished before', field_name='finished_datetime', lookup_expr='lte' + ) + finished_after = InvenTreeDateFilter( + label='Finished after', field_name='finished_datetime', lookup_expr='gte' + ) + + +class TestStatistics(GenericAPIView): + """API endpoint for accessing a test statistics broken down by test templates.""" + + queryset = StockItemTestResult.objects.all() + serializer_class = StockSerializers.TestStatisticsSerializer + pagination_class = None + filterset_class = TestStatisticsFilter + filter_backends = SEARCH_ORDER_FILTER_ALIAS + + @extend_schema( + responses={200: StockSerializers.TestStatisticsSerializer(many=False)} + ) + def get(self, request, pk, *args, **kwargs): + """Return test execution count matrix broken down by test result.""" + instance = self.get_object() + serializer = self.get_serializer(instance) + if request.resolver_match.url_name == 'api-test-statistics-by-part': + serializer.context['type'] = 'by-part' + elif request.resolver_match.url_name == 'api-test-statistics-by-build': + serializer.context['type'] = 'by-build' + serializer.context['finished_datetime_after'] = self.request.query_params.get( + 'finished_datetime_after' + ) + serializer.context['finished_datetime_before'] = self.request.query_params.get( + 'finished_datetime_before' + ) + serializer.context['pk'] = pk + return Response([serializer.data]) + + class StockItemTestResultList(StockItemTestResultMixin, ListCreateDestroyAPIView): """API endpoint for listing (and creating) a StockItemTestResult object.""" @@ -1663,3 +1711,27 @@ stock_api_urls = [ # Anything else path('', StockList.as_view(), name='api-stock-list'), ] + +test_statistics_api_urls = [ + # Test statistics endpoints + path( + 'by-part/', + include([ + path( + '/', + TestStatistics.as_view(), + name='api-test-statistics-by-part', + ) + ]), + ), + path( + 'by-build/', + include([ + path( + '/', + TestStatistics.as_view(), + name='api-test-statistics-by-build', + ) + ]), + ), +] diff --git a/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py b/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py new file mode 100644 index 0000000000..21b48b91da --- /dev/null +++ b/src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.11 on 2024-07-20 22:30 + +import common.icons +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0111_delete_stockitemattachment'), + ] + + operations = [ + migrations.AlterField( + model_name='stocklocation', + name='custom_icon', + field=models.CharField(blank=True, db_column='icon', help_text='Icon (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + migrations.AlterField( + model_name='stocklocationtype', + name='icon', + field=models.CharField(blank=True, help_text='Default icon for all locations that have no icon set (optional)', max_length=100, validators=[common.icons.validate_icon], verbose_name='Icon'), + ), + ] diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index e0fa3d3c6f..35ce61a99a 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -33,12 +33,15 @@ import InvenTree.ready import InvenTree.tasks import report.mixins import report.models +from build import models as BuildModels +from common.icons import validate_icon from common.settings import get_global_setting from company import models as CompanyModels from InvenTree.fields import InvenTreeModelMoneyField, InvenTreeURLField from order.status_codes import SalesOrderStatusGroups from part import models as PartModels from plugin.events import trigger_event +from stock import models as StockModels from stock.generators import generate_batch_code from stock.status_codes import StockHistoryCode, StockStatus, StockStatusGroups from users.models import Owner @@ -86,6 +89,7 @@ class StockLocationType(InvenTree.models.MetadataMixin, models.Model): max_length=100, verbose_name=_('Icon'), help_text=_('Default icon for all locations that have no icon set (optional)'), + validators=[validate_icon], ) @@ -117,6 +121,8 @@ class StockLocation( ITEM_PARENT_KEY = 'location' + EXTRA_PATH_FIELDS = ['icon'] + objects = StockLocationManager() class Meta: @@ -163,6 +169,7 @@ class StockLocation( verbose_name=_('Icon'), help_text=_('Icon (optional)'), db_column='icon', + validators=[validate_icon], ) owner = models.ForeignKey( @@ -212,6 +219,11 @@ class StockLocation( if self.location_type: return self.location_type.icon + if default_icon := get_global_setting( + 'STOCK_LOCATION_DEFAULT_ICON', cache=True + ): + return default_icon + return '' @icon.setter @@ -2449,6 +2461,67 @@ class StockItemTestResult(InvenTree.models.InvenTreeMetadataModel): """Return key for test.""" return InvenTree.helpers.generateTestKey(self.test_name) + def calculate_test_statistics_for_test_template( + self, query_base, test_template, ret, start, end + ): + """Helper function to calculate the passed/failed/total tests count per test template type.""" + query = query_base & Q(template=test_template.pk) + if start is not None and end is not None: + query = query & Q(started_datetime__range=(start, end)) + elif start is not None and end is None: + query = query & Q(started_datetime__gt=start) + elif start is None and end is not None: + query = query & Q(started_datetime__lt=end) + + passed = StockModels.StockItemTestResult.objects.filter( + query & Q(result=True) + ).count() + failed = StockModels.StockItemTestResult.objects.filter( + query & ~Q(result=True) + ).count() + if test_template.test_name not in ret: + ret[test_template.test_name] = {'passed': 0, 'failed': 0, 'total': 0} + ret[test_template.test_name]['passed'] += passed + ret[test_template.test_name]['failed'] += failed + ret[test_template.test_name]['total'] += passed + failed + ret['total']['passed'] += passed + ret['total']['failed'] += failed + ret['total']['total'] += passed + failed + return ret + + def build_test_statistics(self, build_order_pk, start, end): + """Generate a statistics matrix for each test template based on the test executions result counts.""" + build = BuildModels.Build.objects.get(pk=build_order_pk) + if not build or not build.part.trackable: + return {} + + test_templates = build.part.getTestTemplates() + ret = {'total': {'passed': 0, 'failed': 0, 'total': 0}} + for build_item in build.get_build_outputs(): + for test_template in test_templates: + query_base = Q(stock_item=build_item) + ret = self.calculate_test_statistics_for_test_template( + query_base, test_template, ret, start, end + ) + return ret + + def part_test_statistics(self, part_pk, start, end): + """Generate a statistics matrix for each test template based on the test executions result counts.""" + part = PartModels.Part.objects.get(pk=part_pk) + + if not part or not part.trackable: + return {} + + test_templates = part.getTestTemplates() + ret = {'total': {'passed': 0, 'failed': 0, 'total': 0}} + for bo in part.stock_entries(): + for test_template in test_templates: + query_base = Q(stock_item=bo) + ret = self.calculate_test_statistics_for_test_template( + query_base, test_template, ret, start, end + ) + return ret + stock_item = models.ForeignKey( StockItem, on_delete=models.CASCADE, related_name='test_results' ) diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 8cbdd28566..8f83b59751 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -506,7 +506,10 @@ class StockItemSerializer( 'part__category', 'part__pricing_data', 'supplier_part', + 'supplier_part__part', + 'supplier_part__supplier', 'supplier_part__manufacturer_part', + 'supplier_part__manufacturer_part__manufacturer', 'supplier_part__tags', 'test_results', 'tags', @@ -870,6 +873,36 @@ class UninstallStockItemSerializer(serializers.Serializer): item.uninstall_into_location(location, request.user, note) +class TestStatisticsLineField(serializers.DictField): + """DRF field definition for one column of the test statistics.""" + + test_name = serializers.CharField() + results = serializers.DictField(child=serializers.IntegerField(min_value=0)) + + +class TestStatisticsSerializer(serializers.Serializer): + """DRF serializer class for the test statistics.""" + + results = serializers.ListField(child=TestStatisticsLineField(), read_only=True) + + def to_representation(self, obj): + """Just pass through the test statistics from the model.""" + if self.context['type'] == 'by-part': + return obj.part_test_statistics( + self.context['pk'], + self.context['finished_datetime_after'], + self.context['finished_datetime_before'], + ) + elif self.context['type'] == 'by-build': + return obj.build_test_statistics( + self.context['pk'], + self.context['finished_datetime_after'], + self.context['finished_datetime_before'], + ) + + raise ValidationError(_('Unsupported statistic type: ' + self.context['type'])) + + class ConvertStockItemSerializer(serializers.Serializer): """DRF serializer class for converting a StockItem to a valid variant part.""" diff --git a/src/backend/InvenTree/stock/templates/stock/item_base.html b/src/backend/InvenTree/stock/templates/stock/item_base.html index 1a7f0fe5cf..fac0adf14d 100644 --- a/src/backend/InvenTree/stock/templates/stock/item_base.html +++ b/src/backend/InvenTree/stock/templates/stock/item_base.html @@ -646,7 +646,6 @@ $("#stock-return-from-customer").click(function() { {% endif %} tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { diff --git a/src/backend/InvenTree/stock/templates/stock/location.html b/src/backend/InvenTree/stock/templates/stock/location.html index 37039dd017..a2e34576ee 100644 --- a/src/backend/InvenTree/stock/templates/stock/location.html +++ b/src/backend/InvenTree/stock/templates/stock/location.html @@ -15,10 +15,7 @@ {% block heading %} {% if location %} {% trans "Stock Location" %}: -{% settings_value "STOCK_LOCATION_DEFAULT_ICON" as default_icon %} -{% if location.icon or default_icon %} - -{% endif %} + {{ location.name }} {% else %} {% trans "Stock" %} @@ -244,6 +241,10 @@ {% block js_ready %} {{ block.super }} + loadApiIconPacks().then(() => { + $('#location-icon').addClass(getApiIconClass('{{ location.icon }}')); + }); + {% settings_value "STOCKTAKE_ENABLE" as stocktake_enable %} {% if stocktake_enable and roles.stocktake.add %} $('#location-stocktake').click(function() { @@ -251,14 +252,12 @@ category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { {% if location %}value: {{ location.pk }},{% endif %} tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, @@ -455,7 +454,6 @@ return node; }, - defaultIcon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }); {% endblock js_ready %} diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index 4b8471cf8b..61a8a43ba7 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -472,13 +472,13 @@ class StockLocationTypeTest(StockAPITestCase): """Test that the list endpoint works as expected.""" location_types = [ StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ), StockLocationType.objects.create( - name='Type 2', description='Type 2 desc', icon='fas fa-box' + name='Type 2', description='Type 2 desc', icon='ti:package:outline' ), StockLocationType.objects.create( - name='Type 3', description='Type 3 desc', icon='fas fa-box' + name='Type 3', description='Type 3 desc', icon='ti:package:outline' ), ] @@ -493,7 +493,7 @@ class StockLocationTypeTest(StockAPITestCase): def test_delete(self): """Test that we can delete a location type via API.""" location_type = StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ) self.delete( reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), @@ -506,8 +506,19 @@ class StockLocationTypeTest(StockAPITestCase): self.post( self.list_url, {'name': 'Test Type 1', 'description': 'Test desc 1', 'icon': 'fas fa-box'}, + expected_code=400, + ) + + self.post( + self.list_url, + { + 'name': 'Test Type 1', + 'description': 'Test desc 1', + 'icon': 'ti:package:outline', + }, expected_code=201, ) + self.assertIsNotNone( StockLocationType.objects.filter(name='Test Type 1').first() ) @@ -515,14 +526,20 @@ class StockLocationTypeTest(StockAPITestCase): def test_update(self): """Test that we can update a location type via API.""" location_type = StockLocationType.objects.create( - name='Type 1', description='Type 1 desc', icon='fas fa-box' + name='Type 1', description='Type 1 desc', icon='ti:package:outline' ) - res = self.patch( + self.patch( reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), {'icon': 'fas fa-shapes'}, + expected_code=400, + ) + + res = self.patch( + reverse('api-location-type-detail', kwargs={'pk': location_type.pk}), + {'icon': 'ti:tag:outline'}, expected_code=200, ).json() - self.assertEqual(res['icon'], 'fas fa-shapes') + self.assertEqual(res['icon'], 'ti:tag:outline') class StockItemListTest(StockAPITestCase): diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index 7eb0302876..dcbf2cf3d3 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -15,7 +15,13 @@ from order.models import SalesOrder from part.models import Part, PartTestTemplate from stock.status_codes import StockHistoryCode -from .models import StockItem, StockItemTestResult, StockItemTracking, StockLocation +from .models import ( + StockItem, + StockItemTestResult, + StockItemTracking, + StockLocation, + StockLocationType, +) class StockTestBase(InvenTreeTestCase): @@ -1305,3 +1311,39 @@ class TestResultTest(StockTestBase): tests = item.testResultMap(include_installed=False) self.assertEqual(len(tests), 3) self.assertNotIn('somenewtest', tests) + + +class StockLocationTest(InvenTreeTestCase): + """Tests for the StockLocation model.""" + + def test_icon(self): + """Test stock location icon.""" + # No default icon set + loc = StockLocation.objects.create(name='Test Location') + loc_type = StockLocationType.objects.create( + name='Test Type', icon='ti:cube-send:outline' + ) + self.assertEqual(loc.icon, '') + + # Set a default icon + InvenTreeSetting.set_setting( + 'STOCK_LOCATION_DEFAULT_ICON', 'ti:package:outline' + ) + self.assertEqual(loc.icon, 'ti:package:outline') + + # Assign location type and check that it takes precedence over default icon + loc.location_type = loc_type + loc.save() + self.assertEqual(loc.icon, 'ti:cube-send:outline') + + # Set a custom icon and assert that it takes precedence over all other icons + loc.icon = 'ti:tag:outline' + loc.save() + self.assertEqual(loc.icon, 'ti:tag:outline') + InvenTreeSetting.set_setting('STOCK_LOCATION_DEFAULT_ICON', '') + + # Test that the icon can be set to None again + loc.icon = '' + loc.location_type = None + loc.save() + self.assertEqual(loc.icon, '') diff --git a/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html b/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html index 85d90193db..5b2a0ce898 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/settings_staff_js.html @@ -330,7 +330,6 @@ onPanelLoad('category', function() { icon: 'fa-sitemap', tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, default_value: {}, @@ -394,7 +393,6 @@ onPanelLoad('category', function() { value: pk, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, default_value: {}, @@ -429,7 +427,8 @@ onPanelLoad('parts', function() { }); // Javascript for the Stock settings panel -onPanelLoad("stock", function() { +onPanelLoad("stock", async function() { + await loadApiIconPacks(); // Construct the stock location type table $('#location-type-table').bootstrapTable({ @@ -440,6 +439,15 @@ onPanelLoad("stock", function() { return '{% trans "No stock location types found" escape %}'; }, columns: [ + { + field: 'icon', + sortable: true, + title: '{% trans "Icon" escape %}', + width: "50px", + formatter: function(value, row) { + return `` + } + }, { field: 'name', sortable: true, @@ -450,11 +458,6 @@ onPanelLoad("stock", function() { sortable: false, title: '{% trans "Description" escape %}', }, - { - field: 'icon', - sortable: true, - title: '{% trans "Icon" escape %}', - }, { field: 'location_count', sortable: true, @@ -560,13 +563,11 @@ onPanelLoad('stocktake', function() { category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, location: { tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, generate_report: {}, diff --git a/src/backend/InvenTree/templates/js/dynamic/nav.js b/src/backend/InvenTree/templates/js/dynamic/nav.js index bec8d208cf..2fc0edd78e 100644 --- a/src/backend/InvenTree/templates/js/dynamic/nav.js +++ b/src/backend/InvenTree/templates/js/dynamic/nav.js @@ -1,5 +1,7 @@ /* globals + getApiIconClass, inventreeGet, + loadApiIconPacks, */ /* exported @@ -180,6 +182,11 @@ function generateTreeStructure(data, options) { if (options.processNode) { node = options.processNode(node); + + if (node.icon) { + node.icon = getApiIconClass(node.icon); + } + data[ii] = node; } } @@ -213,7 +220,7 @@ function generateTreeStructure(data, options) { /** * Enable support for breadcrumb tree navigation on this page */ -function enableBreadcrumbTree(options) { +async function enableBreadcrumbTree(options) { const label = options.label; @@ -224,6 +231,8 @@ function enableBreadcrumbTree(options) { const filters = options.filters || {}; + await loadApiIconPacks(); + inventreeGet( options.url, filters, diff --git a/src/backend/InvenTree/templates/js/translated/build.js b/src/backend/InvenTree/templates/js/translated/build.js index d6e5daf95a..5901ce820c 100644 --- a/src/backend/InvenTree/templates/js/translated/build.js +++ b/src/backend/InvenTree/templates/js/translated/build.js @@ -619,7 +619,6 @@ function completeBuildOutputs(build_id, outputs, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { @@ -753,7 +752,6 @@ function scrapBuildOutputs(build_id, outputs, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: {}, @@ -2131,7 +2129,6 @@ function autoAllocateStockToBuild(build_id, bom_items=[], options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, exclude_location: {}, diff --git a/src/backend/InvenTree/templates/js/translated/filters.js b/src/backend/InvenTree/templates/js/translated/filters.js index a6ad9e505c..3e6dfc8220 100644 --- a/src/backend/InvenTree/templates/js/translated/filters.js +++ b/src/backend/InvenTree/templates/js/translated/filters.js @@ -15,6 +15,9 @@ /* exported setupFilterList, + addTableFilter, + removeTableFilter, + reloadTableFilters */ /** diff --git a/src/backend/InvenTree/templates/js/translated/forms.js b/src/backend/InvenTree/templates/js/translated/forms.js index 3d888072eb..222cc55223 100644 --- a/src/backend/InvenTree/templates/js/translated/forms.js +++ b/src/backend/InvenTree/templates/js/translated/forms.js @@ -2251,7 +2251,6 @@ function initializeRelatedField(field, fields, options={}) { data: rootNodes, expandIcon: 'fas fa-plus-square large-treeview-icon', collapseIcon: 'fa fa-minus-square large-treeview-icon', - nodeIcon: field.tree_picker.defaultIcon, color: "black", }); } diff --git a/src/backend/InvenTree/templates/js/translated/helpers.js b/src/backend/InvenTree/templates/js/translated/helpers.js index df2f92c008..156a697f5d 100644 --- a/src/backend/InvenTree/templates/js/translated/helpers.js +++ b/src/backend/InvenTree/templates/js/translated/helpers.js @@ -14,7 +14,10 @@ deleteButton, editButton, formatDecimal, + getApiIcon, + getApiIconClass, imageHoverIcon, + loadApiIconPacks, makeCopyButton, makeDeleteButton, makeEditButton, @@ -594,3 +597,66 @@ function renderClipboard(s, prepend=false) { return `
    ${s+clipString}
    `; } } + +async function loadApiIconPacks() { + if(!window._ICON_PACKS) { + const packs = await inventreeGet('{% url "api-icon-list" %}'); + + window._ICON_PACKS = Object.fromEntries(packs.map(pack => [pack.prefix, pack])); + + await Promise.all( + packs.map(async (pack) => { + const fontName = `inventree-icon-font-${pack.prefix}`; + const src = Object.entries(pack.fonts).map(([format, url]) => `url(${url}) format("${format}")`).join(',\n'); + const font = new FontFace(fontName, src + ";"); + await font.load(); + document.fonts.add(font); + + return font; + }) + ) + } + + return window._ICON_PACKS; +} + +function getApiIcon(name) { + if(!window._ICON_PACKS) return; + + const [_iconPackage, _name, _variant] = name.split(':'); + + const iconPackage = window._ICON_PACKS[_iconPackage]; + if(!iconPackage) return; + + const icon = iconPackage.icons[_name]; + if(!icon) return; + + const variant = icon.variants[_variant]; + if(!variant) return; + + return [`inventree-icon-font-${_iconPackage}`, variant]; +} + +function getApiIconClass(name) { + const icon = getApiIcon(name); + if(!icon) return ""; + + const [font, hexContent] = icon; + + let styleTag = document.getElementById('api-icon-styles'); + if(!styleTag) { + styleTag = document.createElement('style'); + styleTag.id = 'api-icon-styles'; + styleTag.type = 'text/css'; + + document.head.appendChild(styleTag); + } + + const className = `icon-${name.replace(/:/g, '-')}`; + + if (!styleTag.textContent.includes(`.${className}`)) { + styleTag.textContent += `.${className} { font-family: ${font}; } .${className}:before { content: "\\${hexContent}"; }\n`; + } + + return `api-icon ${className}`; +} diff --git a/src/backend/InvenTree/templates/js/translated/model_renderers.js b/src/backend/InvenTree/templates/js/translated/model_renderers.js index d2d0573ab8..67eb4186e7 100644 --- a/src/backend/InvenTree/templates/js/translated/model_renderers.js +++ b/src/backend/InvenTree/templates/js/translated/model_renderers.js @@ -2,6 +2,7 @@ /* globals blankImage, + getApiIconClass, partStockLabel, renderLink, select2Thumbnail @@ -274,7 +275,7 @@ function renderStockLocation(data, parameters={}) { function renderStockLocationType(data, parameters={}) { return renderModel( { - text: `${data.name}`, + text: `${data.name}`, }, parameters ); diff --git a/src/backend/InvenTree/templates/js/translated/order.js b/src/backend/InvenTree/templates/js/translated/order.js index 8c98a729ce..fc7c41960f 100644 --- a/src/backend/InvenTree/templates/js/translated/order.js +++ b/src/backend/InvenTree/templates/js/translated/order.js @@ -8,6 +8,7 @@ exportFormatOptions, formatCurrency, getFormFieldValue, + handleFormSuccess, inventreeGet, inventreeLoad, inventreeSave, @@ -25,6 +26,7 @@ createExtraLineItem, editExtraLineItem, exportOrder, + holdOrder, issuePurchaseOrder, newPurchaseOrderFromOrderWizard, newSupplierPartFromOrderWizard, @@ -38,6 +40,29 @@ */ +function holdOrder(url, options={}) { + constructForm( + url, + { + method: 'POST', + title: '{% trans "Hold Order" %}', + confirm: true, + preFormContent: function(opts) { + let html = ` +
    + {% trans "Are you sure you wish to place this order on hold?" %} +
    `; + + return html; + }, + onSuccess: function(response) { + handleFormSuccess(response, options); + } + } + ); +} + + /* Construct a set of fields for a OrderExtraLine form */ function extraLineFields(options={}) { diff --git a/src/backend/InvenTree/templates/js/translated/part.js b/src/backend/InvenTree/templates/js/translated/part.js index 8606c3b84b..3875926c38 100644 --- a/src/backend/InvenTree/templates/js/translated/part.js +++ b/src/backend/InvenTree/templates/js/translated/part.js @@ -11,6 +11,7 @@ formatCurrency, formatDecimal, formatPriceRange, + getApiIconClass, getCurrencyConversionRates, getFormFieldValue, getTableData, @@ -130,7 +131,6 @@ function partFields(options={}) { }, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, name: {}, @@ -155,7 +155,6 @@ function partFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, default_supplier: { @@ -311,7 +310,6 @@ function categoryFields(options={}) { required: false, tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, name: {}, @@ -323,7 +321,6 @@ function categoryFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, default_keywords: { @@ -331,8 +328,9 @@ function categoryFields(options={}) { }, structural: {}, icon: { - help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Font Awesome.`, - placeholder: 'fas fa-tag', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', + icon: "fa-icons", }, }; @@ -2215,7 +2213,6 @@ function setPartCategory(data, options={}) { category: { tree_picker: { url: '{% url "api-part-category-tree" %}', - default_icon: global_settings.PART_CATEGORY_DEFAULT_ICON, }, }, }, @@ -2782,9 +2779,8 @@ function loadPartCategoryTable(table, options) { } } - const icon = row.icon || global_settings.PART_CATEGORY_DEFAULT_ICON; - if (icon) { - html += ``; + if (row.icon) { + html += ``; } html += renderLink( diff --git a/src/backend/InvenTree/templates/js/translated/purchase_order.js b/src/backend/InvenTree/templates/js/translated/purchase_order.js index 35bdd6c845..33f3f24f2b 100644 --- a/src/backend/InvenTree/templates/js/translated/purchase_order.js +++ b/src/backend/InvenTree/templates/js/translated/purchase_order.js @@ -1387,7 +1387,6 @@ function receivePurchaseOrderItems(order_id, line_items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, }, diff --git a/src/backend/InvenTree/templates/js/translated/return_order.js b/src/backend/InvenTree/templates/js/translated/return_order.js index 23c921dfc2..c22330c87d 100644 --- a/src/backend/InvenTree/templates/js/translated/return_order.js +++ b/src/backend/InvenTree/templates/js/translated/return_order.js @@ -552,7 +552,6 @@ function receiveReturnOrderItems(order_id, line_items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, } }, diff --git a/src/backend/InvenTree/templates/js/translated/stock.js b/src/backend/InvenTree/templates/js/translated/stock.js index 5df28f95c1..f9c5c2b3e3 100644 --- a/src/backend/InvenTree/templates/js/translated/stock.js +++ b/src/backend/InvenTree/templates/js/translated/stock.js @@ -4,6 +4,7 @@ /* globals addCachedAlert, + addTableFilter, baseCurrency, calculateTotalPrice, clearFormInput, @@ -16,6 +17,7 @@ formatCurrency, formatDecimal, formatPriceRange, + getApiIconClass, getCurrencyConversionRates, getFormFieldElement, getFormFieldValue, @@ -37,8 +39,11 @@ makeIconBadge, makeIconButton, makeRemoveButton, + moment, orderParts, partDetail, + reloadTableFilters, + removeTableFilter, renderClipboard, renderDate, renderLink, @@ -69,6 +74,7 @@ duplicateStockItem, editStockItem, editStockLocation, + filterTestStatisticsTableDateRange, findStockItemBySerialNumber, installStockItem, loadInstalledInTable, @@ -77,6 +83,7 @@ loadStockTestResultsTable, loadStockTrackingTable, loadTableFilters, + prepareTestStatisticsTable, mergeStockItems, removeStockRow, serializeStockItem, @@ -137,8 +144,8 @@ function stockLocationTypeFields() { name: {}, description: {}, icon: { - help_text: `{% trans "Default icon for all locations that have no icon set (optional) - Explore all available icons on" %} Font Awesome.`, - placeholder: 'fas fa-box', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', icon: "fa-icons", }, } @@ -154,7 +161,6 @@ function stockLocationFields(options={}) { required: false, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, name: {}, @@ -173,8 +179,8 @@ function stockLocationFields(options={}) { }, }, custom_icon: { - help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Font Awesome.`, - placeholder: 'fas fa-box', + help_text: `{% trans "Icon (optional) - Explore all available icons on" %} Tabler Icons.`, + placeholder: 'ti:: (e.g. ti:alert-circle:filled)', icon: "fa-icons", }, }; @@ -356,7 +362,6 @@ function stockItemFields(options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, quantity: { @@ -916,7 +921,6 @@ function mergeStockItems(items, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, notes: { @@ -2811,9 +2815,8 @@ function loadStockLocationTable(table, options) { } } - const icon = row.icon || global_settings.STOCK_LOCATION_DEFAULT_ICON; - if (icon) { - html += ``; + if (row.icon) { + html += ``; } html += renderLink( @@ -3262,7 +3265,6 @@ function uninstallStockItem(installed_item_id, options={}) { }, tree_picker: { url: '{% url "api-location-tree" %}', - default_icon: global_settings.STOCK_LOCATION_DEFAULT_ICON, }, }, note: { @@ -3415,3 +3417,105 @@ function setStockStatus(items, options={}) { } }); } + + +/* + * Load TestStatistics table. + */ +function loadTestStatisticsTable(table, prefix, url, options, filters = {}) { + inventreeGet(url, filters, { + async: true, + success: function(data) { + const keys = ['passed', 'failed', 'total'] + let header = ''; + let rows = [] + let passed= ''; + let failed = ''; + let total = ''; + $('.test-stat-result-cell').remove(); + $.each(data[0], function(key, value){ + if (key != "total") { + header += '' + key + ''; + keys.forEach(function(keyName) { + var tdText = '-'; + if (value['total'] != '0' && value[keyName] != '0') { + let percentage = '' + if (keyName != 'total' && value[total] != 0) { + percentage = ' (' + (100.0 * (parseFloat(value[keyName]) / parseFloat(value['total']))).toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 2}) + '%)'; + } + tdText = value[keyName] + percentage; + } + rows[keyName] += '' + tdText + ''; + }) + } + }); + $('#' + prefix + '-test-statistics-table-header-id').after(header); + + keys.forEach(function(keyName) { + let valueStr = data[0]['total'][keyName]; + if (keyName != 'total' && data[0]['total']['total'] != '0') { + valueStr += ' (' + (100.0 * (parseFloat(valueStr) / parseFloat(data[0]['total']['total']))).toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 2}) + '%)'; + } + rows[keyName] += '' + valueStr + ''; + $('#' + prefix + '-test-statistics-table-body-' + keyName).after(rows[keyName]); + }); + $('#' + prefix + '-test-statistics-table').show(); + setupFilterList(prefix + "teststatistics", table, "#filter-list-" + prefix + "teststatistics", options); + }, + }); +} + +function prepareTestStatisticsTable(keyName, apiUrl) +{ + let options = { + custom_actions: [ + { + icon: 'fa-calendar-week', + actions: [ + { + icon: 'fa-calendar-week', + title: '{% trans "This week" %}', + label: 'this-week', + callback: function(data) { + filterTestStatisticsTableDateRange(data, 'this-week', $("#test-statistics-table"), keyName + 'teststatistics', options); + } + }, + { + icon: 'fa-calendar-week', + title: '{% trans "This month" %}', + label: 'this-month', + callback: function(data) { + filterTestStatisticsTableDateRange(data, 'this-month', $("#test-statistics-table"), keyName + 'teststatistics', options); + } + }, + ], + } + ], + callback: function(table, filters, options) { + loadTestStatisticsTable($("#test-statistics-table"), keyName, apiUrl, options, filters); + } + } + setupFilterList(keyName + 'teststatistics', $("#test-statistics-table"), '#filter-list-' + keyName + 'teststatistics', options); + + // Load test statistics table + loadTestStatisticsTable($("#test-statistics-table"), keyName, apiUrl, options); +} + +function filterTestStatisticsTableDateRange(data, range, table, tableKey, options) +{ + var startDateString = ''; + var d = new Date(); + if (range == "this-week") { + startDateString = moment(new Date(d.getFullYear(), d.getMonth(), d.getDate() - (d.getDay() == 0 ? 6 : d.getDay() - 1))).format('YYYY-MM-DD'); + } else if (range == "this-month") { + startDateString = moment(new Date(d.getFullYear(), d.getMonth(), 1)).format('YYYY-MM-DD'); + } else { + console.warn(`Invalid range specified for filterTestStatisticsTableDateRange`); + return; + } + var filters = addTableFilter(tableKey, 'finished_datetime_after', startDateString); + removeTableFilter(tableKey, 'finished_datetime_before') + + reloadTableFilters(table, filters, options); + setupFilterList(tableKey, table, "#filter-list-" + tableKey, options); +} diff --git a/src/backend/InvenTree/templates/js/translated/table_filters.js b/src/backend/InvenTree/templates/js/translated/table_filters.js index c32b69f8b6..71b8c8a917 100644 --- a/src/backend/InvenTree/templates/js/translated/table_filters.js +++ b/src/backend/InvenTree/templates/js/translated/table_filters.js @@ -462,6 +462,20 @@ function getStockTestTableFilters() { }; } +// Return a dictionary of filters for the "test statistics" table +function getTestStatisticsTableFilters() { + + return { + finished_datetime_after: { + type: 'date', + title: '{% trans "Interval start" %}', + }, + finished_datetime_before: { + type: 'date', + title: '{% trans "Interval end" %}', + } + }; +} // Return a dictionary of filters for the "stocktracking" table function getStockTrackingTableFilters() { @@ -863,6 +877,8 @@ function getAvailableTableFilters(tableKey) { return getBuildItemTableFilters(); case 'buildlines': return getBuildLineTableFilters(); + case 'buildteststatistics': + return getTestStatisticsTableFilters(); case 'bom': return getBOMTableFilters(); case 'category': @@ -885,6 +901,8 @@ function getAvailableTableFilters(tableKey) { return getPartTableFilters(); case 'parttests': return getPartTestTemplateFilters(); + case 'partteststatistics': + return getTestStatisticsTableFilters(); case 'plugins': return getPluginTableFilters(); case 'purchaseorder': diff --git a/src/backend/InvenTree/templates/test_statistics_table.html b/src/backend/InvenTree/templates/test_statistics_table.html new file mode 100644 index 0000000000..24361a3bf9 --- /dev/null +++ b/src/backend/InvenTree/templates/test_statistics_table.html @@ -0,0 +1,22 @@ +{% load i18n %} +{% load inventree_extras %} + + + + + + + + + + + + + + + + + + + + diff --git a/src/backend/InvenTree/users/api.py b/src/backend/InvenTree/users/api.py index fd6400b6bc..e784f81393 100644 --- a/src/backend/InvenTree/users/api.py +++ b/src/backend/InvenTree/users/api.py @@ -18,6 +18,8 @@ from drf_spectacular.utils import OpenApiResponse, extend_schema, extend_schema_ from rest_framework import exceptions, permissions from rest_framework.authentication import BasicAuthentication from rest_framework.decorators import authentication_classes +from rest_framework.generics import DestroyAPIView +from rest_framework.permissions import AllowAny, IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView @@ -34,7 +36,12 @@ from InvenTree.mixins import ( from InvenTree.serializers import ExendedUserSerializer, UserCreateSerializer from InvenTree.settings import FRONTEND_URL_BASE from users.models import ApiToken, Owner -from users.serializers import GroupSerializer, OwnerSerializer, RoleSerializer +from users.serializers import ( + ApiTokenSerializer, + GroupSerializer, + OwnerSerializer, + RoleSerializer, +) logger = logging.getLogger('inventree') @@ -342,6 +349,22 @@ class GetAuthToken(APIView): raise exceptions.NotAuthenticated() +class TokenListView(DestroyAPIView, ListAPI): + """List of registered tokens for current users.""" + + permission_classes = (IsAuthenticated,) + serializer_class = ApiTokenSerializer + + def get_queryset(self): + """Only return data for current user.""" + return ApiToken.objects.filter(user=self.request.user) + + def perform_destroy(self, instance): + """Revoke token.""" + instance.revoked = True + instance.save() + + class LoginRedirect(RedirectView): """Redirect to the correct starting page after backend login.""" @@ -356,6 +379,13 @@ class LoginRedirect(RedirectView): user_urls = [ path('roles/', RoleDetails.as_view(), name='api-user-roles'), path('token/', GetAuthToken.as_view(), name='api-token'), + path( + 'tokens/', + include([ + path('/', TokenListView.as_view(), name='api-token-detail'), + path('', TokenListView.as_view(), name='api-token-list'), + ]), + ), path('me/', MeUserDetail.as_view(), name='api-user-me'), path( 'owner/', diff --git a/src/backend/InvenTree/users/serializers.py b/src/backend/InvenTree/users/serializers.py index c6c34fde3b..8455dfd2b6 100644 --- a/src/backend/InvenTree/users/serializers.py +++ b/src/backend/InvenTree/users/serializers.py @@ -8,7 +8,7 @@ from rest_framework import serializers from InvenTree.serializers import InvenTreeModelSerializer -from .models import Owner, RuleSet, check_user_role +from .models import ApiToken, Owner, RuleSet, check_user_role class OwnerSerializer(InvenTreeModelSerializer): @@ -116,5 +116,35 @@ def generate_permission_dict(permissions): perms[model] = [] perms[model].append(perm) - return perms + + +class ApiTokenSerializer(InvenTreeModelSerializer): + """Serializer for the ApiToken model.""" + + in_use = serializers.SerializerMethodField(read_only=True) + + def get_in_use(self, token: ApiToken) -> bool: + """Return True if the token is currently used to call the endpoint.""" + from InvenTree.middleware import get_token_from_request + + request = self.context.get('request') + rq_token = get_token_from_request(request) + return token.key == rq_token + + class Meta: + """Meta options for ApiTokenSerializer.""" + + model = ApiToken + fields = [ + 'created', + 'expiry', + 'id', + 'last_seen', + 'name', + 'token', + 'active', + 'revoked', + 'user', + 'in_use', + ] diff --git a/src/backend/package-lock.json b/src/backend/package-lock.json index f0a3461ade..0023f7f4bd 100644 --- a/src/backend/package-lock.json +++ b/src/backend/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "eslint": "^9.5.0", + "eslint": "^9.7.0", "eslint-config-google": "^0.14.0" } }, @@ -43,21 +43,21 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.16.0.tgz", - "integrity": "sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", - "minimatch": "^3.0.5" + "minimatch": "^3.1.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -86,9 +86,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.5.0.tgz", - "integrity": "sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==", + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -158,9 +158,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -322,15 +322,15 @@ } }, "node_modules/eslint": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.5.0.tgz", - "integrity": "sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==", + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz", + "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/config-array": "^0.16.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.5.0", + "@eslint/js": "9.7.0", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -339,9 +339,9 @@ "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.1", + "eslint-scope": "^8.0.2", "eslint-visitor-keys": "^4.0.0", - "espree": "^10.0.1", + "espree": "^10.1.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -383,9 +383,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", - "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -409,11 +409,11 @@ } }, "node_modules/espree": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", - "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.0.0" }, diff --git a/src/backend/package.json b/src/backend/package.json index 6a36da710d..af77f35b2e 100644 --- a/src/backend/package.json +++ b/src/backend/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "eslint": "^9.5.0", + "eslint": "^9.7.0", "eslint-config-google": "^0.14.0" }, "type": "module" diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt index c22dad58b4..72b7aba4b5 100644 --- a/src/backend/requirements-dev.txt +++ b/src/backend/requirements-dev.txt @@ -262,9 +262,9 @@ distlib==0.3.8 \ --hash=sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784 \ --hash=sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64 # via virtualenv -django==4.2.14 \ - --hash=sha256:3ec32bc2c616ab02834b9cac93143a7dc1cdcd5b822d78ac95fc20a38c534240 \ - --hash=sha256:fc6919875a6226c7ffcae1a7d51e0f2ceaf6f160393180818f6c95f51b1e7b96 +django==4.2.15 \ + --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ + --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a # via # -c src/backend/requirements.txt # django-admin-shell @@ -279,9 +279,9 @@ django-querycount==0.8.3 \ django-slowtests==1.1.1 \ --hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247 # via -r src/backend/requirements-dev.in -django-test-migrations==1.3.0 \ - --hash=sha256:b42edb1af481e08c9d91c95aa9b373e76e905a931bc19c086ec00a6cb936876e \ - --hash=sha256:b52b29475f9a1bcaa4512f2ec8fad08b5f470cf1cf522e86b7d950252fb6fbf1 +django-test-migrations==1.4.0 \ + --hash=sha256:294dff98f6d43d020d4046b971bac5339e7c71458a35e9ad6450c388fe16ed6b \ + --hash=sha256:f0c9c92864ed27d0c9a582e92056637e91227f54bd868a50cb9a1726668c563e # via -r src/backend/requirements-dev.in filelock==3.15.4 \ --hash=sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb \ @@ -315,9 +315,9 @@ pdfminer-six==20231228 \ --hash=sha256:6004da3ad1a7a4d45930cb950393df89b068e73be365a6ff64a838d37bcb08c4 \ --hash=sha256:e8d3c3310e6fbc1fe414090123ab01351634b4ecb021232206c4c9a8ca3e3b8f # via -r src/backend/requirements-dev.in -pip==24.1 \ - --hash=sha256:a775837439bf5da2c1a0c2fa43d5744854497c689ddbd9344cf3ea6d00598540 \ - --hash=sha256:bdae551038c0ce6a83030b4aedef27fc95f0daa683593fea22fa05e55ed8e317 +pip==24.2 \ + --hash=sha256:2cd581cf58ab7fcfca4ce8efa6dcacd0de5bf8d0a3eb9ec927e07405f4d9e2a2 \ + --hash=sha256:5b5e490b5e9cb275c879595064adce9ebd31b854e3e803740b72f9ccf34a45b8 # via pip-tools pip-tools==7.4.1 \ --hash=sha256:4c690e5fbae2f21e87843e89c26191f0d9454f362d8acdbd695716493ec8b3a9 \ @@ -398,9 +398,9 @@ pyyaml==6.0.1 \ # via # -c src/backend/requirements.txt # pre-commit -setuptools==71.0.3 \ - --hash=sha256:3d8531791a27056f4a38cd3e54084d8b1c4228ff9cf3f2d7dd075ec99f9fd70d \ - --hash=sha256:f501b6e6db709818dc76882582d9c516bf3b67b948864c5fa1d1624c09a49207 +setuptools==72.1.0 \ + --hash=sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1 \ + --hash=sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec # via # -c src/backend/requirements.txt # -r src/backend/requirements-dev.in diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 1cfa4a0c7f..9ddd6e42e0 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -331,9 +331,9 @@ diff-match-patch==20230430 \ dj-rest-auth==6.0.0 \ --hash=sha256:760b45f3a07cd6182e6a20fe07d0c55230c5f950167df724d7914d0dd8c50133 # via -r src/backend/requirements.in -django==4.2.14 \ - --hash=sha256:3ec32bc2c616ab02834b9cac93143a7dc1cdcd5b822d78ac95fc20a38c534240 \ - --hash=sha256:fc6919875a6226c7ffcae1a7d51e0f2ceaf6f160393180818f6c95f51b1e7b96 +django==4.2.15 \ + --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ + --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a # via # -r src/backend/requirements.in # dj-rest-auth @@ -1549,9 +1549,9 @@ sentry-sdk==2.8.0 \ # via # -r src/backend/requirements.in # django-q-sentry -setuptools==71.0.3 \ - --hash=sha256:3d8531791a27056f4a38cd3e54084d8b1c4228ff9cf3f2d7dd075ec99f9fd70d \ - --hash=sha256:f501b6e6db709818dc76882582d9c516bf3b67b948864c5fa1d1624c09a49207 +setuptools==72.1.0 \ + --hash=sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1 \ + --hash=sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec # via # -r src/backend/requirements.in # django-money diff --git a/src/frontend/package.json b/src/frontend/package.json index 48592cc1fe..8e38182ac4 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -50,9 +50,10 @@ "codemirror": ">=6.0.0", "dayjs": "^1.11.10", "embla-carousel-react": "^8.1.6", + "fuse.js": "^7.0.0", "html5-qrcode": "^2.3.8", - "qrcode": "^1.5.3", "mantine-datatable": "^7.11.2", + "qrcode": "^1.5.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-grid-layout": "^1.4.4", @@ -60,6 +61,7 @@ "react-is": "^18.3.1", "react-router-dom": "^6.24.0", "react-select": "^5.8.0", + "react-window": "^1.8.10", "recharts": "^2.12.4", "styled-components": "^6.1.11", "zustand": "^4.5.4" @@ -77,6 +79,7 @@ "@types/react-dom": "^18.3.0", "@types/react-grid-layout": "^1.3.5", "@types/react-router-dom": "^5.3.3", + "@types/react-window": "^1.8.8", "@vanilla-extract/vite-plugin": "^4.0.12", "@vitejs/plugin-react": "^4.3.1", "babel-plugin-macros": "^3.1.0", diff --git a/src/frontend/src/components/buttons/PrimaryActionButton.tsx b/src/frontend/src/components/buttons/PrimaryActionButton.tsx new file mode 100644 index 0000000000..8d30b3fd36 --- /dev/null +++ b/src/frontend/src/components/buttons/PrimaryActionButton.tsx @@ -0,0 +1,41 @@ +import { Button, Tooltip } from '@mantine/core'; + +import { InvenTreeIcon, InvenTreeIconType } from '../../functions/icons'; +import { notYetImplemented } from '../../functions/notifications'; + +/** + * A "primary action" button for display on a page detail, (for example) + */ +export default function PrimaryActionButton({ + title, + tooltip, + icon, + color, + hidden, + onClick +}: { + title: string; + tooltip?: string; + icon?: InvenTreeIconType; + color?: string; + hidden?: boolean; + onClick?: () => void; +}) { + if (hidden) { + return null; + } + + return ( + + ); +} diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index 7c2346eb38..f58136d628 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -46,7 +46,7 @@ export type DetailsField = ); type BadgeType = 'owner' | 'user' | 'group'; -type ValueFormatterReturn = string | number | null; +type ValueFormatterReturn = string | number | null | React.ReactNode; type StringDetailField = { type: 'string' | 'text'; @@ -122,11 +122,11 @@ function NameBadge({ pk, type }: { pk: string | number; type: BadgeType }) { case 200: return response.data; default: - return undefined; + return {}; } }) .catch(() => { - return undefined; + return {}; }); } }); diff --git a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx index f1eac290a4..1f03f3ce71 100644 --- a/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx +++ b/src/frontend/src/components/editors/TemplateEditor/TemplateEditor.tsx @@ -210,7 +210,11 @@ export function TemplateEditor(props: Readonly) { ); const templateFilters: Record = useMemo(() => { - // TODO: Extract custom filters from template + // TODO: Extract custom filters from template (make this more generic) + if (template.model_type === ModelType.stockitem) { + return { part_detail: 'true' } as Record; + } + return {}; }, [template]); diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index 797862c0f3..bfff18714e 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -309,17 +309,17 @@ export function ApiForm({ for (const k of Object.keys(_fields)) { // Ensure default values override initial field spec - if (defaultValues[k]) { + if (k in defaultValues) { _fields[k].value = defaultValues[k]; } // Ensure initial data overrides default values - if (_initialData && _initialData[k]) { + if (_initialData && k in _initialData) { _fields[k].value = _initialData[k]; } // Ensure fetched data overrides also - if (_fetchedData && _fetchedData[k]) { + if (_fetchedData && k in _fetchedData) { _fields[k].value = _fetchedData[k]; } } @@ -368,6 +368,11 @@ export function ApiForm({ return; } + // Do not auto-focus on a 'choice' field + if (field.field_type == 'choice') { + return; + } + focusField = fieldName; }); } @@ -378,7 +383,7 @@ export function ApiForm({ form.setFocus(focusField); setInitialFocus(focusField); - }, [props.focus, fields, form.setFocus, isLoading, initialFocus]); + }, [props.focus, form.setFocus, isLoading, initialFocus]); const submitForm: SubmitHandler = async (data) => { setNonFieldErrors([]); @@ -398,7 +403,7 @@ export function ApiForm({ let value: any = data[key]; let field_type = fields[key]?.field_type; - if (field_type == 'file upload') { + if (field_type == 'file upload' && !!value) { hasFiles = true; } @@ -413,7 +418,9 @@ export function ApiForm({ } } - dataForm.append(key, value); + if (value != undefined) { + dataForm.append(key, value); + } }); return api({ diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index 39890bacd5..3e0147bd45 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -10,6 +10,7 @@ import { isTrue } from '../../../functions/conversion'; import { ChoiceField } from './ChoiceField'; import DateField from './DateField'; import { DependentField } from './DependentField'; +import IconField from './IconField'; import { NestedObjectField } from './NestedObjectField'; import { RelatedModelField } from './RelatedModelField'; import { TableField } from './TableField'; @@ -58,6 +59,7 @@ export type ApiFormFieldType = { | 'email' | 'url' | 'string' + | 'icon' | 'boolean' | 'date' | 'datetime' @@ -223,6 +225,10 @@ export function ApiFormField({ onChange={onChange} /> ); + case 'icon': + return ( + + ); case 'boolean': return ( ; + definition: ApiFormFieldType; +}>) { + const { + field, + fieldState: { error } + } = controller; + + const { value } = field; + + const [open, setOpen] = useState(false); + const combobox = useCombobox({ + onOpenedChange: (opened) => setOpen(opened) + }); + + return ( + + + e.preventDefault()} + onClick={() => field.onChange(null)} + /> + ) : ( + + ) + } + onClick={() => combobox.toggleDropdown()} + rightSectionPointerEvents={value === null ? 'none' : 'all'} + > + {field.value ? ( + + + + {field.value} + + + ) : ( + + No icon selected + + )} + + + + + + + + ); +} + +type RenderIconType = { + package: string; + name: string; + tags: string[]; + category: string; + variant: string; +}; + +function ComboboxDropdown({ + definition, + value, + combobox, + onChange, + open +}: Readonly<{ + definition: ApiFormFieldType; + value: null | string; + combobox: ComboboxStore; + onChange: (newVal: string | null) => void; + open: boolean; +}>) { + const iconPacks = useIconState((s) => s.packages); + const icons = useMemo(() => { + return iconPacks.flatMap((pack) => + Object.entries(pack.icons).flatMap(([name, icon]) => + Object.entries(icon.variants).map(([variant]) => ({ + package: pack.prefix, + name: `${pack.prefix}:${name}:${variant}`, + tags: icon.tags, + category: icon.category, + variant: variant + })) + ) + ); + }, [iconPacks]); + const filter = useMemo( + () => + new Fuse(icons, { + threshold: 0.2, + keys: ['name', 'tags', 'category', 'variant'] + }), + [icons] + ); + + const [searchValue, setSearchValue] = useState(''); + const [debouncedSearchValue] = useDebouncedValue(searchValue, 200); + const [category, setCategory] = useState(null); + const [pack, setPack] = useState(null); + + const categories = useMemo( + () => + Array.from( + new Set( + icons + .filter((i) => (pack !== null ? i.package === pack : true)) + .map((i) => i.category) + ) + ).map((x) => + x === '' + ? { value: '', label: t`Uncategorized` } + : { value: x, label: x } + ), + [icons, pack] + ); + const packs = useMemo( + () => iconPacks.map((pack) => ({ value: pack.prefix, label: pack.name })), + [iconPacks] + ); + + const applyFilters = ( + iconList: RenderIconType[], + category: string | null, + pack: string | null + ) => { + if (category === null && pack === null) return iconList; + return iconList.filter( + (i) => + (category !== null ? i.category === category : true) && + (pack !== null ? i.package === pack : true) + ); + }; + + const filteredIcons = useMemo(() => { + if (!debouncedSearchValue) { + return applyFilters(icons, category, pack); + } + + const res = filter.search(debouncedSearchValue.trim()).map((r) => r.item); + + return applyFilters(res, category, pack); + }, [debouncedSearchValue, filter, category, pack]); + + // Reset category when pack changes and the current category is not available in the new pack + useEffect(() => { + if (value === null) return; + + if (!categories.find((c) => c.value === category)) { + setCategory(null); + } + }, [pack]); + + const { width, ref } = useElementSize(); + + return ( + + + setSearchValue(e.currentTarget.value)} + placeholder={t`Search...`} + rightSection={ + searchValue && !definition.required ? ( + setSearchValue('')} /> + ) : null + } + flex={1} + /> + startTransition(() => setPack(c))} + data={packs} + comboboxProps={{ withinPortal: false }} + clearable + placeholder={t`Select pack`} + /> + + + + {filteredIcons.length} icons + + + + + ); +} + +function DropdownList({ + icons, + onChange, + combobox, + value, + width, + open +}: Readonly<{ + icons: RenderIconType[]; + onChange: (newVal: string | null) => void; + combobox: ComboboxStore; + value: string | null; + width: number; + open: boolean; +}>) { + // Get the inner width of the dropdown (excluding the scrollbar) by using the outerRef provided by the react-window Grid element + const { width: innerWidth, ref: innerRef } = useElementSize(); + + const columnCount = Math.floor(innerWidth / 35); + const rowCount = columnCount > 0 ? Math.ceil(icons.length / columnCount) : 0; + + const gridRef = useRef(null); + const hasScrolledToPositionRef = useRef(true); + + // Reset the has already scrolled to position state when the dropdown open state is changed + useEffect(() => { + const timeoutId = setTimeout(() => { + hasScrolledToPositionRef.current = false; + }, 100); + + return () => clearTimeout(timeoutId); + }, [open]); + + // Scroll to the selected icon if not already has scrolled to position + useEffect(() => { + // Do not scroll if the value is not set, columnCount is not set, the dropdown is not open, or the position has already been scrolled to + if ( + !value || + columnCount === 0 || + hasScrolledToPositionRef.current || + !open + ) + return; + + const iconIdx = icons.findIndex((i) => i.name === value); + if (iconIdx === -1) return; + + gridRef.current?.scrollToItem({ + align: 'start', + rowIndex: Math.floor(iconIdx / columnCount) + }); + hasScrolledToPositionRef.current = true; + }, [value, columnCount, open]); + + return ( + + {({ columnIndex, rowIndex, data, style }) => { + const icon = data[rowIndex * columnCount + columnIndex]; + + // Grid has empty cells in the last row if the number of icons is not a multiple of columnCount + if (icon === undefined) return null; + + const isSelected = value === icon.name; + + return ( + { + onChange(isSelected ? null : icon.name); + combobox.closeDropdown(); + }} + style={{ + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + cursor: 'pointer', + background: isSelected + ? 'var(--mantine-color-blue-filled)' + : 'unset', + borderRadius: 'var(--mantine-radius-default)', + ...style + }} + > + + + ); + }} + + ); +} diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx index 18816190dd..728a32f35e 100644 --- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx +++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx @@ -236,25 +236,23 @@ export function RelatedModelField({ // Field doesn't follow Mantine theming // Define color theme to pass to field based on Mantine theme const theme = useMantineTheme(); - - const colorschema = vars.colors.primaryColors; const { colorScheme } = useMantineColorScheme(); const colors = useMemo(() => { let colors: any; if (colorScheme === 'dark') { colors = { - neutral0: colorschema[6], - neutral5: colorschema[4], - neutral10: colorschema[4], - neutral20: colorschema[4], - neutral30: colorschema[3], - neutral40: colorschema[2], - neutral50: colorschema[1], - neutral60: colorschema[0], - neutral70: colorschema[0], - neutral80: colorschema[0], - neutral90: colorschema[0], + neutral0: vars.colors.dark[6], + neutral5: vars.colors.dark[4], + neutral10: vars.colors.dark[4], + neutral20: vars.colors.dark[4], + neutral30: vars.colors.dark[3], + neutral40: vars.colors.dark[2], + neutral50: vars.colors.dark[1], + neutral60: vars.colors.dark[0], + neutral70: vars.colors.dark[0], + neutral80: vars.colors.dark[0], + neutral90: vars.colors.dark[0], primary: vars.colors.primaryColors[7], primary25: vars.colors.primaryColors[6], primary50: vars.colors.primaryColors[5], diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 2b63b0f16a..63e2414122 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -50,49 +50,3 @@ export function Thumbnail({ ); } - -export function ThumbnailHoverCard({ - src, - text, - link = '', - alt = t`Thumbnail`, - size = 20 -}: { - src: string; - text: string; - link?: string; - alt?: string; - size?: number; -}) { - const card = useMemo(() => { - return ( - - - {text} - - ); - }, [src, text, alt, size]); - - if (link) { - return ( - - {card} - - ); - } - - return
    {card}
    ; -} - -export function PartHoverCard({ part }: { part: any }) { - return part ? ( - - ) : ( - - ); -} diff --git a/src/frontend/src/components/importer/ImporterDrawer.tsx b/src/frontend/src/components/importer/ImporterDrawer.tsx index ae46780604..5aa39f67df 100644 --- a/src/frontend/src/components/importer/ImporterDrawer.tsx +++ b/src/frontend/src/components/importer/ImporterDrawer.tsx @@ -16,10 +16,9 @@ import { import { IconCheck } from '@tabler/icons-react'; import { ReactNode, useMemo } from 'react'; -import { - ImportSessionStatus, - useImportSession -} from '../../hooks/UseImportSession'; +import { ModelType } from '../../enums/ModelType'; +import { useImportSession } from '../../hooks/UseImportSession'; +import useStatusCodes from '../../hooks/UseStatusCodes'; import { StylishText } from '../items/StylishText'; import ImporterDataSelector from './ImportDataSelector'; import ImporterColumnSelector from './ImporterColumnSelector'; @@ -62,19 +61,23 @@ export default function ImporterDrawer({ }) { const session = useImportSession({ sessionId: sessionId }); + const importSessionStatus = useStatusCodes({ + modelType: ModelType.importsession + }); + // Map from import steps to stepper steps const currentStep = useMemo(() => { switch (session.status) { default: - case ImportSessionStatus.INITIAL: + case importSessionStatus.INITIAL: return 0; - case ImportSessionStatus.MAPPING: + case importSessionStatus.MAPPING: return 1; - case ImportSessionStatus.IMPORTING: + case importSessionStatus.IMPORTING: return 2; - case ImportSessionStatus.PROCESSING: + case importSessionStatus.PROCESSING: return 3; - case ImportSessionStatus.COMPLETE: + case importSessionStatus.COMPLETE: return 4; } }, [session.status]); @@ -85,15 +88,15 @@ export default function ImporterDrawer({ } switch (session.status) { - case ImportSessionStatus.INITIAL: + case importSessionStatus.INITIAL: return Initial : TODO; - case ImportSessionStatus.MAPPING: + case importSessionStatus.MAPPING: return ; - case ImportSessionStatus.IMPORTING: + case importSessionStatus.IMPORTING: return ; - case ImportSessionStatus.PROCESSING: + case importSessionStatus.PROCESSING: return ; - case ImportSessionStatus.COMPLETE: + case importSessionStatus.COMPLETE: return ( { - console.log('refreshing:', session.status); - - if (session.status == ImportSessionStatus.IMPORTING) { + if (session.status == importSessionStatus.IMPORTING) { session.refreshSession(); } }, 1000); diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index d29c21c93f..f291bd520e 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -89,7 +89,11 @@ export function ActionDropdown({ {...action.indicator} key={action.name} > - ); } @@ -329,3 +336,85 @@ function MfaContent() { ); } + +function TokenContent() { + const { isLoading, data, refetch } = useQuery({ + queryKey: ['token-list'], + queryFn: () => + api.get(apiUrl(ApiEndpoints.user_tokens)).then((res) => res.data) + }); + + function revokeToken(id: string) { + api + .delete(apiUrl(ApiEndpoints.user_tokens, id)) + .then(() => { + refetch(); + }) + .catch((res) => console.log(res.data)); + } + const rows = useMemo(() => { + if (isLoading || data === undefined) return null; + return data.map((token: any) => ( + + + + + {token.expiry} + {token.last_seen} + {token.token} + {token.name} + + {token.in_use ? ( + Token is used - no actions + ) : ( + + )} + + + )); + }, [data, isLoading]); + + /* renderer */ + if (isLoading) return ; + + if (data.length == 0) + return ( + } color="green"> + No tokens configured + + ); + + return ( + + + + + Active + + + Expiry + + + Last Seen + + + Token + + + Name + + + Actions + + + + {rows} +
    + ); +} diff --git a/src/frontend/src/pages/Index/Settings/AdminCenter/LabelTemplatePanel.tsx b/src/frontend/src/pages/Index/Settings/AdminCenter/LabelTemplatePanel.tsx index 2e6e258159..cda9c40efa 100644 --- a/src/frontend/src/pages/Index/Settings/AdminCenter/LabelTemplatePanel.tsx +++ b/src/frontend/src/pages/Index/Settings/AdminCenter/LabelTemplatePanel.tsx @@ -1,10 +1,12 @@ import { ApiEndpoints } from '../../../../enums/ApiEndpoints'; +import { ModelType } from '../../../../enums/ModelType'; import { TemplateTable } from '../../../../tables/settings/TemplateTable'; export default function LabelTemplatePanel() { return ( + + <Trans>Groups</Trans> diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 87888c5655..062fbf0789 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -1,6 +1,7 @@ import { t } from '@lingui/macro'; import { Grid, Skeleton, Stack } from '@mantine/core'; import { + IconChecklist, IconClipboardCheck, IconClipboardList, IconDots, @@ -11,12 +12,14 @@ import { IconNotes, IconPaperclip, IconQrcode, + IconReportAnalytics, IconSitemap } from '@tabler/icons-react'; import { useMemo } from 'react'; import { useParams } from 'react-router-dom'; import AdminButton from '../../components/buttons/AdminButton'; +import PrimaryActionButton from '../../components/buttons/PrimaryActionButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; import { DetailsField, DetailsTable } from '../../components/details/Details'; import { DetailsImage } from '../../components/details/DetailsImage'; @@ -24,9 +27,11 @@ import { ItemDetailsGrid } from '../../components/details/ItemDetails'; import NotesEditor from '../../components/editors/NotesEditor'; import { ActionDropdown, + BarcodeActionDropdown, CancelItemAction, DuplicateItemAction, EditItemAction, + HoldItemAction, LinkBarcodeAction, UnlinkBarcodeAction, ViewBarcodeAction @@ -44,14 +49,17 @@ import { useEditApiFormModal } from '../../hooks/UseForm'; import { useInstance } from '../../hooks/UseInstance'; +import useStatusCodes from '../../hooks/UseStatusCodes'; import { apiUrl } from '../../states/ApiState'; import { useUserState } from '../../states/UserState'; import BuildAllocatedStockTable from '../../tables/build/BuildAllocatedStockTable'; import BuildLineTable from '../../tables/build/BuildLineTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; +import BuildOrderTestTable from '../../tables/build/BuildOrderTestTable'; import BuildOutputTable from '../../tables/build/BuildOutputTable'; import { AttachmentTable } from '../../tables/general/AttachmentTable'; import { StockItemTable } from '../../tables/stock/StockItemTable'; +import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable'; /** * Detail page for a single Build Order @@ -239,11 +247,7 @@ export default function BuildDetail() { label: t`Line Items`, icon: , content: build?.pk ? ( - + ) : ( ) @@ -275,7 +279,7 @@ export default function BuildDetail() { label: t`Allocated Stock`, icon: , content: build.pk ? ( - + ) : ( ) @@ -304,6 +308,31 @@ export default function BuildDetail() { ) }, + { + name: 'test-results', + label: t`Test Results`, + icon: , + hidden: !build.part_detail?.trackable, + content: build.pk ? ( + + ) : ( + + ) + }, + { + name: 'test-statistics', + label: t`Test Statistics`, + icon: , + content: ( + + ), + hidden: !build?.part_detail?.trackable + }, { name: 'attachments', label: t`Attachments`, @@ -334,21 +363,7 @@ export default function BuildDetail() { pk: build.pk, title: t`Edit Build Order`, fields: buildOrderFields, - onFormSuccess: () => { - refreshInstance(); - } - }); - - const cancelBuild = useCreateApiFormModal({ - url: apiUrl(ApiEndpoints.build_order_cancel, build.pk), - title: t`Cancel Build Order`, - fields: { - remove_allocated_stock: {}, - remove_incomplete_outputs: {} - }, - onFormSuccess: () => { - refreshInstance(); - } + onFormSuccess: refreshInstance }); const duplicateBuild = useCreateApiFormModal({ @@ -363,12 +378,87 @@ export default function BuildDetail() { modelType: ModelType.build }); + const buildStatus = useStatusCodes({ modelType: ModelType.build }); + + const cancelOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.build_order_cancel, build.pk), + title: t`Cancel Build Order`, + onFormSuccess: refreshInstance, + successMessage: t`Order cancelled`, + preFormWarning: t`Cancel this order`, + fields: { + remove_allocated_stock: {}, + remove_incomplete_outputs: {} + } + }); + + const holdOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.build_order_hold, build.pk), + title: t`Hold Build Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Place this order on hold`, + successMessage: t`Order placed on hold` + }); + + const issueOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.build_order_issue, build.pk), + title: t`Issue Build Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Issue this order`, + successMessage: t`Order issued` + }); + + const completeOrder = useCreateApiFormModal({ + url: apiUrl(ApiEndpoints.build_order_complete, build.pk), + title: t`Complete Build Order`, + onFormSuccess: refreshInstance, + preFormWarning: t`Mark this order as complete`, + successMessage: t`Order completed`, + fields: { + accept_overallocated: {}, + accept_unallocated: {}, + accept_incomplete: {} + } + }); + const buildActions = useMemo(() => { + const canEdit = user.hasChangeRole(UserRoles.build); + + const canIssue = + canEdit && + (build.status == buildStatus.PENDING || + build.status == buildStatus.ON_HOLD); + + const canComplete = canEdit && build.status == buildStatus.PRODUCTION; + + const canHold = + canEdit && + (build.status == buildStatus.PENDING || + build.status == buildStatus.PRODUCTION); + + const canCancel = + canEdit && + (build.status == buildStatus.PENDING || + build.status == buildStatus.ON_HOLD || + build.status == buildStatus.PRODUCTION); + return [ +